Newsgroup: it.comp.lang.delphi
Titolo: Inserire immagini dentro un database DB2

Salve a tutti 
 sto cercando di inserire un'immagine dentro un campo BLOB di db2 con
questo codice:
  var 
    bmp: TBitmap;
    buffer:TMemoryStream;
  begin
    //crea l'immagine dall componente di disegno
    bmp:=TBitmap.create;
    //fa una "foto" al componente che contiene l'ogetto
    getBmp(foto,Bmp);
    buffer := TMemoryStream.Create;
    bmp.SaveToStream(buffer);
    showmessage(intToStr(buffer.position));
    buffer.Position:=0;
    //inserisce la sagoma nell'archivio
    qry.SQL.Text:='INSERT INTO TABELLA VALUES(:nome,:imm)';
    qry.ParamByName('nome').asString:='immagine';
    qry.ParamByName('imm').LoadFromStream(buffer,ftGraphic);
    qry.ExecSQL;
    qry.close;
    buffer.free;
    bmp.free;
  end;
ma mi ritorna questo errore:
[IBM][CLI Driver] CLI0102E Invalid conversion. SQLSTATE=07006
dove sta l'errore?
P.S.
questo errore compare qualunque tipo scelgo al posto di ftGraphic
--- posted by geoForum on 
http://www.delphiedintorni.it

 [IBM][CLI Driver] CLI0102E Invalid conversion. SQLSTATE=07006
questo non è un errore delphi, ma un errore del client di db2.
A.


immaginavo, e come risolvo questo problema?


> immaginavo, e come risolvo questo problema?
un buon inizio potrebbe essere vedere cosa dice la guida su questo
codice di errore, non trovi?
A.


bhe mi sembra ovvio, volevo solo sapere,mentre sto cercando, se qualcun
altro si è trovato di fronte a questo problema e come lo ha risolto.


 --- posted by geoForum on 
http://www.delphiedintorni.it
Ciao, Vitto

Riguarda MySql ma credo potrebbe esserti utile
l'avevo già visto ma qui si usano i TTable non TQuery ed avevo abandonato
l'idea di usare i Tblobfield per inserire l'immagine..


 
dal link precedente:
"In the code above:
"myTable" is the name of the TDataSet component you are using (TTable, 
TQuery, ADOTable, TClientDataSet, etc). "
What's the trouble?
Vitto

 questo codice:
Mi ricordi il mio periodo d'oro di quando facevo il consulente e usavo ogni
giorno il mitico db2... :)
Riguardo il tuo problema credo che tu debba realizzare e bindare una stored
procedure e poi usare da delphi il comp. TStoredProc.
dai un'occhio a questo link:
http://www-128.ibm.com/developerworks/db2/library/techarticle/dm-0504stolze/
e a questi risultati:
http://groups.google.it/groups/search?hl=it&q=delphi+tstoredproc+DB2+&qt_s=Ricerca
ciao
-- 
Morde. 
(email fittizia, non sono contattabile)
ICLDweb: 
http://www2.samatel.com/icld/

ho capito, 
il problema sta nel fatto che il driver ODBC non funziona con quella
procedura che ho scritto all'inizio di questa discussione, se uso il
driver nativo(BDE) invece funziona, ma poi si hanno altri problemi più
gravi e quindi non è utilizzabile con DElphi 5..ora nessuno sa
consigliarmi un altro modo per inseire un dato in un BLOB di un datanase
DB2 tramite il driver ODBC?


Nessun suggerimento in merito?


 Nessun suggerimento in merito?
Nessun suggerimento perchè ti ho già indicato quello che per me dovresti
fare, e cioè scriverti una stored procedure, compilarla e bindare gli obj
(delphi puo' produrre codici oggetto anche per c/c++) nel db. Poi, richiami
la stored procedure con i componenti opportuni.
Riguardo il driver di interfacciamento (ODBC) non so che dirti.
Ciao



non credo che lo store procedure faccia al mio caso.
ho provato con i componenti dbExpress di Delphi 7 usando il driver nativo
ed ho notato che la mia procedura funziona, l'immagine viene inserita.
Io però devo usare il driver ODBC(cioè quello standard) che da
quell'errore che ho postato sopra.
Poichè, però, il driver ODBC rappresenta appunto lo standard sicuramente
c'è qualche modo d inserire immagini in un database DB2 tramite quest'ultimo.
Sto scartabellando tutta internet per trovare riferimenti validi a questo
tipo di problematica ma non ho ancora trovato nulla.
Chiedo quindi se qualcuno si è trovato di fronte al mio stesso problema e
come ha risolto..
Grazie a tutti per il contributo dato e futuro


bene ho risolto, č bastato passare da DB2 7 a DB2 8 e ha funzionato tutto..
grazie a tutti per l'aiuto
