[Tech] Interbase (lungo)
Fabio Carnasciali
f.carnasciali@comune.firenze.it
Sab 25 Nov 2000 15:26:27 CET
Sto facendo delle comparazioni tra postgres e interbase e sto lavorando su
quest'ultimo.
Devo interfacciarmi da un programma in VB5 (so che è una schifezza, ma mi
tocca!).
Questa è la situazione:
Interbase versione 6 Super Server (InterBaseSS_LI-V6.0-1.i386.rpm) su RedHat
6.2 .
Driver ODBC scaricato da http://www.geocities.com/ibdatabase/
Ho già provato con quello della INTERSOLV (però non ricordo da dove si
scarica, qualcuno sa dove ?).
Da una form in VB5 con il data control e con la dbgrid mi funziona benissimo
in aggiunta,modifica e cancellazione di records.
La tabella di prova è munita di chiave primaria gestita con un generatore ed
un trigger sul campo chiave.
Se uso il seguente codice ottengo un errore:
dim WsCorrente as Workspace
dim DbCorrente as Database
dim strSQL as String
dim strConnessione as string
DBEngine.DefaultType = dbUseODBC 'o è meglio dbUseJet
DBEngine.SetOption dbPageTimeout, 1
DBEngine.SetOption dbImplicitCommitSync, "yes"
DBEngine.SetOption dbUserCommitSync, "yes"
Set WsCorrente = DBEngine.Workspaces(0)
strConnessione = "ODBC;DSN=Interbase;PROTOCOL=2;SERVER2.168.6.19; _
DATABASE=/opt/interbase/databases/mio_db.gdb;VERSION=6; _
DIALECT=3;OPTIONS=0;;UID=sysdba;PWD=masterkey"
Set DbCorrente = WsCorrente.OpenDatabase(gstrNomeDataBase, _
dbDriverComplete, False, strConnessione)
strSQL = "SELECT * FROM INDIRIZZI;"
Set rsCorrente = DbCorrente.OpenRecordset(strSQL, dbOpenDynaset, _
dbSeeChanges, dbPessimistic)
WsCorrente.BeginTrans
rsCorrente.AddNew ---------> ERRORE ODBC CALL FAILED
Vedo un errore del tipo "invalid cursor state" nel log dell'ODBC sulla
macchina client.
Eppure nell'altro modo funziona a meraviglia.
Qualche idea?
Maggiori informazioni sulla lista
flug-tech