sto sviluppando un applicativo che dovrà leggere dei dati da SQLServer e scriverli su MySQL. Lato MySQL nessun problema: mi connetto, leggo, scrivo, tutto ok, tranne una piccola cosa, non riesco a far comparire il LoginPrompt, ma lo sistemerò, non è grave. Lato SQLServer non riesco a collegarmi in nessun modo: Ho installato SQLExpress in locale, e sono certo che funzioni:i tool di management ufficiali si connettono, scrivono, leggono,e cc.... Con HeidiSQL 64bit (che ho sempre pensato possa essere scritto in LAzarus o in Delphi) riesco a collegarmi, ma solo impostando la connessione a TCP/IP (e va bene) e la Library a SQLOLEDB (che non va tanto bene perchè si collega ma prima esce un avviso di sicurezza abbastanza sgradevole....) Con Lazarus (64bit) non c'è verso: il componente "ufficiale" (TMSSQLConnection) mi dà come errore di non trovare la dblib.dll, e anche se la scarico e la metto ovunque l'errore rimane.... In ZeosLib, con cui mi trovo benissimo lato SQL, imposto il Protocol a "mssql", mi dà errore perchè non trova la ntwdblib.dll, la scarico e gli ci faccio puntare tramite LibraryLocation e mi dice "Client-Library ....ntwdblib.bll found but could not be loaded. Check compile-target and library compatibility". Possibile che debba "scendere" a 32 bit con tutto?
Grazie in anticipo
Ale
DragoRosso:
Da quel che ricordo, dovresti attivare la connessione tramite l'utility "cliconfg.exe", che esiste di default in tutte le installazioni di Windows, con o senza SQL.
Devi poi tramite l'utility attivare i protocolli e le porte di connessione.
Per connetterti a MSSQL ci sono diversi modi (memoria condvisa, TCP, pipe, etc ...). Quelle che ho usato è stata sempre la TCP/IP.
E' tanti anni che non uso più SQLExpress, quindi vado a memoria.
Ciao
xinyiman:
Se per qualche motivo il problema è usare ZeosLib, perchè non riesci a rintracciare la dll giusta, puoi sempre usare la connessione attraverso gli ODBC. Vuol dire usare i componenti standard di lazarus ed installare i driver odbc, ma se questo ti evita grattacapi, perchè non farlo!?
Mimmo:
--- Citazione da: AlexM - Febbraio 17, 2022, 02:51:48 pm ---Con Lazarus (64bit) non c'è verso: il componente "ufficiale" (TMSSQLConnection) mi dà come errore di non trovare la dblib.dll, e anche se la scarico e la metto ovunque l'errore rimane....
--- Termina citazione ---
Ciao, io ho diversi programmi a 64 bit che si connettono a SQLServer usando quel componente. Non è che manca qualche dipendenza? Potresti provare a controllare la dblib.dll con un programma tipo depends.exe https://www.dependencywalker.com/ e vedere un po' se ti segnala qualche incongruenza. Anche verificare di avere installato il pacchetto dei Microsoft Visual C++ Redistributable forse potrebbe aiutare https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170
DragoRosso:
Altra cosa, sempre a memoria, il driver indicato era già stato "messo da parte" nei primi anni 2000, non si dovrebbe usare. E sempre a memoria ricordo che il driver che usavo a suo tempo si chiamava "sqlncli......dll" dove al posto dei punti c'era forse la versione (mi pare un 110).
Sono quasi certo che ZEOS dovrebbe usare quel driver (sqlncli = SQL Client Nativo).
E sempre a memoria, ricordo anche che sul sito di Microsoft si può scaricare tramite un pacchetto MSI quei driver che funzionano su qualsiasi MSSQL.
Dopo di questa, vado a liberare un pò di memoria .... adesso ho capito perchè non mi "stà" più niente .... ;D