Cum pot scrie un fișier bmp într-un câmp blob

Cum pot scrie un fișier bmp în baza de date Oracle, în câmpul BLOB

Spune-mi cum să ardă o imagine în baza de date Oracle, am alocat pentru acest câmp este o pată de cerneală, și anume imaginea în sine ar trebui să fie stocate în domeniu, dar înseamnă Delphi, nu am înțeles lucrurile !!






Prompt!

Este ușor! Imagine - în flux, flux - în BLOB

Și biblioteca de acces pe care o utilizați acceptă tipul general de BLOB?

Eu folosesc ODAC, și cum pot transforma o imagine într-un flux, este posibil un pic mai detaliat?

O persoană nu știe că există un dosar Demos în care există un dosar numit BlobPictures.

Cu toate acestea, nu am reușit să mă descurc, în demonstrație se face prin procedură, adică în procedura Oracle este creată și nu este necesară pentru mine. Vreau să fac doar o interogare, am făcut-o

# xA0; # xA0; # xA0; SqlQ.Close;
# xA0; # xA0; # xA0; SqlQ.SQL.Clear;
# xA0; # xA0; # xA0; SqlQ.SQL.Add ("UPDATE MONEY.HHHH SET # xA0; RAB_PHOTO =: Pic WHERE cheie_pole = 631 ");
# xA0; # xA0; # xA0; SqlQ.ParamByName ("Pic") ParamType: = ptInput;
# xA0; # xA0; # XA0; SqlQ.ParamByName ( "Pic") AsOraBlob.LoadFromFile (FileName) .;
# xA0; # xA0; # xA0; SqlQ.Execute;

Dar primesc o eroare: datele ORA-01403 nu au fost găsite.







Demo-ul nu se face prin procedură.

Key_pole este de 100%, iar demonstrațiile se fac acolo prin această procedură

CREAȚI SAU ÎNLOCUIRE
PROCEDURĂ ODAC_BLOB_Insert (
# NUMĂRUL NUMĂRULUI p_ID,
# xA0; p_Title VARCHAR2,
# xA0; p_Pic OUT BLOB
)
este
începe
# xA0; INSERTAȚI ÎN ODAC_BLOB (ID, Titlu, Pic)
# xA0; VALUES (p_ID, p_Title, EMPTY_BLOB ())
# xA0; RETURNING Pic
# xA0; INTO p_Pic;
se încheie;
/

Chiar și demo-ul cu ODAC scrie aproape același lucru:
OCI_NO_DATA

Un lucru ciudat este că eu sau OCI este îndoit sau nu știu dacă folosesc Net în ODAC totul funcționează fără probleme.

În demo, o instanță a TSmartQuery (numele său este Query).
Se bazează pe masă (nu pe procedură) ODAC_BLOB
Descărcarea unei imagini trece prin ea (inclusiv prin ea)
De ce mai ai nevoie?
Ce altceva nu este clar?

Nu am nici măcar o demonstrație, funcționează numai atunci când opțiunea NET este activată, și așa scrie OCI_NO_DATA, de ce?

Deoarece clientul Orakla nu este instalat / corupt

Vryatli, toate aplicațiile funcționează fără probleme, dar nu este

Vryatli, toate aplicațiile funcționează fără probleme, dar nu este

Bine, deci înțeleg cu BLOB aici probleme și atât de repede și pur și simplu nu înțeleg. Apoi îmi puteți spune (de preferință o bucată de cod) ca în câmpul LONG RAW?

SQL.TEXT: = "introduceți în valorile mytable (mylongrawfield) (: blob_body)";
ParamByName ("blob_body"). LoadFromFile (.)

Mulțumesc, funcționează, dar când încerc să mă actualizez
SqlQ.SQL.Add ("UPDATE MONEY.MMM SET PHOTO =: Pic");
. SqlQ.ParamByName ( "Pic") LoadFromFile ( "c: \ 1.bmp", ftBlob);

din anumite motive, apare eroarea AccessViolation din modulul ORA805.dll

cererea nu a funcționat imediat pentru toate înregistrările







Trimiteți-le prietenilor: