[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