Messaggio di errore “valori non corretti all'interno della struttura SQLDA” con Firebird e Delphi 2009

StackOverflow https://stackoverflow.com/questions/1852290

Domanda

Sono strugling con messaggio di errore "valori non corretti all'interno della struttura SQLDA" quando sto cercando di aggiornare campo blob all'interno di Firebird 2.1 database da Delphi 2009 applicazione DBX.

Tuttavia ottengo il messaggio di errore quando sto cercando di eseguire TSQLQuery con SQL seguente: "aggiornamento MYTABLE set FIELD1 =: dati in cui id =: id"

Il codice Delphi rilevante è:

MyQuery.ParamByName('id').AsInteger := id;
MyQuery.ParamByName('data').LoadFromFile(filename, ftBlob);
MyQuery.ExecSQL();

Dove dovrei cercare? Questo ha lavorato nelle versioni precedenti di Delphi.

È stato utile?

Soluzione

Controlla il tuo conducente - si è per Firebird o semplicemente utilizzare il Interbase conducente per questo ?. E 'noto che la squadra Firebird modificato la struttura SQLDA per Blobs a 2.1 e, quindi, il conducente Interbase non può più essere utilizzato.

Avete alcune opzioni qui:

  1. (consigliato, imho) l'aggiornamento a Delphi 2010 - oltre che di un driver DBX Firebird si ottiene molto di più le cose con cui giocare (vedi qui per più)
  2. Compra un driver 3a parte per Firebird che opera in Delphi 2009
  3. 'Downgrade' il tuo Firebird (usarlo come ultima risorsa, ovviamente)
  4. Cambia la tua libreria di connettività. Sì, potrebbe implicare codice di riscrittura.

Altri suggerimenti

forse avete bisogno di utilizzare il driver dbx gratuito per Firebird

http://sites.google.com/site/dbxfirebird/

Questo è il tipo di errore cripta che il driver Interbase di Delphi è usato per mostrare.

Ho visto questo problema quando si dispone di un diverso numero di parametri nell'istruzione SQL e quelle definite nella componente di query.

La prima cosa che viene in mente è quello di assicurarsi che il cliente dll (gds32.dll o fb32.dll o fbclient.dll, il nome dipende da quale versione di Firebird che si sta utilizzando) corrisponda esattamente alla versione server stiamo usando.

- Jeroen

FWIW, ho ottenuto questo errore in un programma Perl eseguendo una dichiarazione senza variabili di bind, quando aveva bisogno di loro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top