Forum > Databases

Connessione a SQLServer

(1/2) > >>

AlexM:
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

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

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

Ciao

Navigazione

[0] Indice dei post

[#] Pagina successiva

Vai alla versione completa