Italian community of Lazarus and Free Pascal

Programmazione => Databases => Topic aperto da: AlexM - Febbraio 17, 2022, 02:51:48 pm

Titolo: Connessione a SQLServer
Inserito da: AlexM - Febbraio 17, 2022, 02:51:48 pm
Ciao a tutti

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
Titolo: Re:Connessione a SQLServer
Inserito da: DragoRosso - Febbraio 17, 2022, 04:27:06 pm
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
Titolo: Re:Connessione a SQLServer
Inserito da: xinyiman - Febbraio 17, 2022, 05:03:42 pm
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!?
Titolo: Re:Connessione a SQLServer
Inserito da: Mimmo - Febbraio 17, 2022, 05:06:08 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....

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/ (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 (https://docs.microsoft.com/en-us/cpp/windows/latest-supported-vc-redist?view=msvc-170)
Titolo: Re:Connessione a SQLServer
Inserito da: DragoRosso - Febbraio 17, 2022, 05:13:47 pm
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

EDIT: https://docs.microsoft.com/it-it/sql/relational-databases/native-client/applications/installing-sql-server-native-client?view=sql-server-ver15 (https://docs.microsoft.com/it-it/sql/relational-databases/native-client/applications/installing-sql-server-native-client?view=sql-server-ver15)

Ciao
Titolo: Re:Connessione a SQLServer
Inserito da: AlexM - Febbraio 17, 2022, 06:46:51 pm
grazie a tutti
avevo lasciato l'ODBC come ultima opzione per limitare le attività di configurazione lato client, ma non c'è dubbio che sia la soluzione più semplice. Userò sicuramente quella, almeno in una fase iniziale