sample odac program fails to access the sample table
Posted: Sat 17 Dec 2005 13:51
{ The following is a pascal program that is derived from an earlier
version, which was lost - it compiles correctly, but has run-time errors }
( error in kernel32.dll }
{ system asks to install SP2 on system }
program Project1;
uses
Db,
Messages,
SysUtils,
Classes,
Controls,
Ora,
OraSmart;
var
flag : boolean;
k : integer;
OraSession1 : TOraSession;
key1 : string;
key2 : string;
data1 : string;
test1 : TOraTable;
flag2 : boolean;
blank : string;
begin
flag := false;
OraSession1 := TOraSession.Create(nil);
OraSession1.Server := 'dbgojer';
OraSession1.Password := 'shlock';
OraSession1.Username := 'SYSTEM';
OraSession1.Connect;
test1 := TOraTable.Create(nil);
test1.TableName := 'TEST1';
test1.Open;
blank := '';
while not flag do
begin
writeln;
writeln('Menu');
writeln('1 - insert record');
writeln('2 - delete record');
writeln('3 - search record');
writeln('4 - change record');
writeln('5 - list all records');
writeln('6 - quit program');
write('> ');
readln(k);
case k of
1 : begin
write('Enter key: ');
readln(key1);
write('Enter data: ');
readln(data1);
test1.Insert;
test1.FieldByName('KEY').AsString := key1;
test1.FieldByName('DATA').AsString := data1;
test1.Post;
test1.Close;
test1.Open;
end;
2 : begin
write('Enter key: ');
readln(key1);
try
test1.Locate('KEY',key1,[loPartialKey]);
test1.Delete;
test1.Post;
test1.Close;
test1.Open;
except
end;
end;
3 : begin
write('Enter key: ');
readln(key1);
test1.Locate('KEY',key1,[loPartialKey]);
data1 := test1.FieldByName('DATA').AsString;
writeln('Data1: ',data1);
end;
4 : begin
write('Enter key: ');
readln(key1);
write('Enter data: ');
readln(data1);
try
test1.Locate('KEY',key1,[loPartialKey]);
test1.Delete;
test1.Post;
test1.Close;
test1.Open;
except
end;
test1.Insert;
test1.FieldByName('KEY').AsString := key1;
test1.FieldByName('DATA').AsString := data1;
test1.Post;
test1.Close;
test1.Open;
end;
5 : begin
key1 := '';
test1.FindFirst;
key2 := test1.FieldByName('KEY').AsString;
data1 := test1.FieldByName('DATA').AsString;
writeln('Key1: ',key2:0,blank:(20 - length(key2)),' Data1: ',Data1);
flag2 := true;
while flag2 do
begin
flag2 := test1.FindNext;
key2 := test1.FieldByName('KEY').AsString;
data1 := test1.FieldByName('DATA').AsString;
if flag2 then writeln('Key1: ',key2:0,blank:(20 -
length(key2)),' Data1: ',Data1);
end;
end;
6 : begin
flag := true;
end;
end;
end;
test1.Close;
OraSession1.Disconnect;
end.
version, which was lost - it compiles correctly, but has run-time errors }
( error in kernel32.dll }
{ system asks to install SP2 on system }
program Project1;
uses
Db,
Messages,
SysUtils,
Classes,
Controls,
Ora,
OraSmart;
var
flag : boolean;
k : integer;
OraSession1 : TOraSession;
key1 : string;
key2 : string;
data1 : string;
test1 : TOraTable;
flag2 : boolean;
blank : string;
begin
flag := false;
OraSession1 := TOraSession.Create(nil);
OraSession1.Server := 'dbgojer';
OraSession1.Password := 'shlock';
OraSession1.Username := 'SYSTEM';
OraSession1.Connect;
test1 := TOraTable.Create(nil);
test1.TableName := 'TEST1';
test1.Open;
blank := '';
while not flag do
begin
writeln;
writeln('Menu');
writeln('1 - insert record');
writeln('2 - delete record');
writeln('3 - search record');
writeln('4 - change record');
writeln('5 - list all records');
writeln('6 - quit program');
write('> ');
readln(k);
case k of
1 : begin
write('Enter key: ');
readln(key1);
write('Enter data: ');
readln(data1);
test1.Insert;
test1.FieldByName('KEY').AsString := key1;
test1.FieldByName('DATA').AsString := data1;
test1.Post;
test1.Close;
test1.Open;
end;
2 : begin
write('Enter key: ');
readln(key1);
try
test1.Locate('KEY',key1,[loPartialKey]);
test1.Delete;
test1.Post;
test1.Close;
test1.Open;
except
end;
end;
3 : begin
write('Enter key: ');
readln(key1);
test1.Locate('KEY',key1,[loPartialKey]);
data1 := test1.FieldByName('DATA').AsString;
writeln('Data1: ',data1);
end;
4 : begin
write('Enter key: ');
readln(key1);
write('Enter data: ');
readln(data1);
try
test1.Locate('KEY',key1,[loPartialKey]);
test1.Delete;
test1.Post;
test1.Close;
test1.Open;
except
end;
test1.Insert;
test1.FieldByName('KEY').AsString := key1;
test1.FieldByName('DATA').AsString := data1;
test1.Post;
test1.Close;
test1.Open;
end;
5 : begin
key1 := '';
test1.FindFirst;
key2 := test1.FieldByName('KEY').AsString;
data1 := test1.FieldByName('DATA').AsString;
writeln('Key1: ',key2:0,blank:(20 - length(key2)),' Data1: ',Data1);
flag2 := true;
while flag2 do
begin
flag2 := test1.FindNext;
key2 := test1.FieldByName('KEY').AsString;
data1 := test1.FieldByName('DATA').AsString;
if flag2 then writeln('Key1: ',key2:0,blank:(20 -
length(key2)),' Data1: ',Data1);
end;
end;
6 : begin
flag := true;
end;
end;
end;
test1.Close;
OraSession1.Disconnect;
end.