Obrati pažnju na deo:
to je postupak deklarisanja blob kursora za upotrebu u tzv. Embedded SQL-u,koriste se za čitanje
BLOB segmenata.To je SQL pisan na poseban način koji se obrađuje pomoću gpre preprocesora
(imaš ga u /bin diru tvoje instalacije: gpre.exe),koji onda izbacuje C,C++,Pascal,Cobol ili koji već kod.
To nije raspoloživo u običnom SQL-u ili PSQL-u.
Npr. umesto tih kursora postoje posebne f-je za manipulaciju blobovima (BLOB_load, BLOB_dump,STORE itd.),
evo primera koji sam ja negde koristio (unos slike):
Code:
EXEC SQL WHENEVER SQLERROR GOTO ExitError;
EXEC SQL SET DATABASE DB1 = 'kupci';
EXEC SQL BEGIN DECLARE SECTION;
BASED ON BLOB_TEST.PKEY pkey;
BASED ON BLOB_TEST.OPIS opis;
BASED ON BLOB_TEST.PODACI podaci;
BASED ON BLOB_TEST.DATA blob_data;
EXEC SQL END DECLARE SECTION;
EXEC SQL CONNECT DB1 USER 'SYSDBA' PASSWORD 'masterkey';
EXEC SQL SET TRANSACTION;
/* BLOB_load primer */
STORE A IN BLOB_TEST USING A.OPIS = "neki opis",A.PODACI="neki podaci";
BLOB_load (&A.DATA, DB1, gds__trans, OpenPictureDialog1->FileName.c_str()); //ovde je
//unesena putanja slike iz dijaloga u C++ Builder-u
END_STORE;
EXEC SQL COMMIT;
EXEC SQL DISCONNECT DB1;
ExitError:
if (SQLCODE)
{
isc_print_sqlerror(SQLCODE, isc_status);
EXEC SQL ROLLBACK;
EXEC SQL DISCONNECT DEFAULT;
exit(1);
}
to se sačuva kao fajl.e i obradi gpre-om: gpre -c -either -manual -no fajl.e i on izbaci C kod koji onda
ugradiš u tvoj C/C++ program.