Oracle-Native - sloupec typu:
SQL_LONGVARCHAR
const sTName = "TestCLob";
dim db : Longint;
dim bDBIsOpen : Byte;
dim xIDENT : Longint;
dim xDATA1 : StringZ;
dim xDATA2 : StringZ;
dim xCOLS : StringZ;
const sCompDATA1 : StringZ =
"123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789," +
"123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789," +
"123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789,123456789,";
const sCompDATA2 : StringZ =
"abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghij" +
"abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghij" +
"abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghijklmn.abcdefghij";
const sCompCOLS : StringZ = "Test";
bDBIsOpen := false;
call ClearMembers;
call SmazTestovaciTabulku;
call ZalozTestovaciTabulku;
call AddRow(1);
call SmazTestovaciTabulku;
call CloseDB;
Exit
procedure AddRow( nIdent : Longint)
dim set : Longint;
call OpenDB;
call DeleteAllRows;
SQLOpen(db, set);
call Bind(set);
SQLSelect(set, sTName, "IDENT=-1", "IDENT");
if(_SQLAddNew(set))then
xIDENT := nIdent;
xDATA1 := sCompDATA1;
xDATA2 := sCompDATA2;
xCOLS := sCompCOLS;
if(_SQLUpdate(set)=false)then
_MsgBox(1,"Chyba v _SQLUpdate !!", 0);
endif
if( _GetSystem(SYS_DBTYP_AKT) = DBTYPE_ORACLE8_NATIVE or
_GetSystem(SYS_DBTYP_AKT) = DBTYPE_ORACLE8_NATIVE_PROC)then
SQLSelect(set, sTName, "IDENT="+_Str(nIdent), "IDENT");
if(_SQLEdit(set))then
xDATA1 := sCompDATA1;
xDATA2 := sCompDATA2;
if(_SQLUpdate(set)=false)then
_MsgBox(1,"Chyba v _SQLUpdate !!", 0);
endif
else
_MsgBox(1,"Chyba v _SQLEdit !!", 0);
endif
endif
else
_MsgBox(1,"Chyba v _SQLAddNew !!", 0);
endif
SQLClose(set);
endproc { AddRow }
procedure OpenDB
{ Otevře spojení s db }
if(bDBIsOpen=false)then
SQLDBOpen(db, #0, #2, #0);
bDBIsOpen := true;
endif
endproc { OpenDB }
procedure CloseDB
{ Zavře spojení s db }
if(bDBIsOpen)then
SQLDBClose(db);
bDBIsOpen := false;
endif
endproc { CloseDB }
procedure DeleteAllRows
{ Smaže všechny řádky v tabulce }
call OpenDB;
SQLExecute(db, "delete from " + sTName);
endproc { DeleteAllRows }
procedure ClearMembers
xIDENT := 0;
xDATA1 := "";
xDATA2 := "";
xCOLS := "";
endproc { ClearMembers }
procedure Bind(dim set : Longint)
SQLBind(set, "IDENT", SQL_INTEGER, xIDENT);
SQLBind(set, "XDATA1", SQL_LONGVARCHAR,-1, xDATA1);
SQLBind(set, "XDATA2", SQL_LONGVARCHAR,-1, xDATA2);
SQLBind(set, "XCOLS", SQL_VARCHAR, xCOLS);
endproc { Bind }
procedure ZalozTestovaciTabulku
call OpenDB;
SQLExecute(db, "CREATE TABLE " + sTName +
"(IDENT " + _SQLGetColTypeName(DB, SQL_INTEGER) + " NOT NULL," +
" XDATA1 " + _SQLGetColTypeName(DB, SQL_LONGVARCHAR) + ", " +
" XDATA2 " + _SQLGetColTypeName(DB, SQL_LONGVARCHAR) + ", " +
" XCOLS " + _SQLGetColTypeName(DB, SQL_VARCHAR) + "(50))");
SQLExecute(db, "CREATE UNIQUE INDEX " + sTName + "_IDENT ON " + sTName + " (IDENT)");
endproc { ZalozTestovaciTabulku }
procedure SmazTestovaciTabulku
call OpenDB;
if(_SQLTableExist(db,sTName))then
SQLExecute(DB, "DROP TABLE " + sTName);
endif
endproc { SmazTestovaciTabulku }