Модератор: Модераторы
SQLTransaction1.Active:=true;
SQLTransaction1.Commit;
SQLite3Connection1.DatabaseName:='c:\test\test.db3';
Sqlite3Dataset1.Open;
SQLite3Connection1.Connected:=True;
Sqlite3Dataset1.Open;
try
SQLite3Connection1.DatabaseName:='c:/test/test.db3';
SQLite3Connection1.Connected := true;
//SQLTransaction1.Active:=true;
SQLite3Connection1.Open;
sql.sql.add('SELECT DISTINCT name FROM pers');
sql.ExecSQL;
//SQLTransaction1.Commit;
sql.open;
sql.first;
while not sql.EOF do
begin
writeln(sql.FieldByName('name').AsString);
sql.next;
end;
except
on E: Exception do
writeln('error: '+E.message);
end;
wofs писал(а):и еще у меня не
Sqlite3Dataset1.Open;
а
SQLite3Connection1.Connected:=True;
try
conn.DatabaseName:='c:/test/test.db3';
conn.Connected := true;
//SQLTransaction1.Active:=true;
conn.Open;
querry.sql.add('SELECT DISTINCT name FROM pers');
querry.ExecSQL;
//SQLTransaction1.Commit;
querry.open;
querry.first;
while not querry.EOF do
begin
writeln(querry.FieldByName('name').AsString);
querry.next;
end;
except
on E: Exception do
writeln('error: '+E.message);
end;
end;
querry.sql.add('SELECT * FROM pers');
datasrc.Enabled:=false;
dataset.FileName:='C:\test\test.db3';
dataset.PrimaryKey:='id';
dataset.Active:=true;
dataset.ExecSQL('select distinct surname from pers');
dataset.First;
while not dataset.EOF do
begin
writeln(dataset.FieldByName('surname').AsString);
dataset.next;
end;
//datasrc.Enabled:=true;
dataset.sql := 'select * from pers where id = 2';
dataset.ExecSQL;
Это потому что у Вас совершенно другой компонент с другим функционалом работы. Не путайте человека.
EatMyShorts писал(а):wofs
Ну мне показалось проще добавить 1 компонент Sqlite3Dataset, вместо 3х: Connection, Transaction, SqlQuery.
угу, зато заменив один только компонент - Connection
я смогу это приложение заставить работать с любой из существующих БД. без переделки кода.
на выходных покрутил sqlite3 в связке с SQLite3Connection1 - все работает прекрасно (добавлял, удалял, выбирал по условию, группировал)...
Переделка под другую БД не планирую
Не могли бы вы поделиться со мной данными наработками .
конечно, пример примитивный, но работает
DS1.Enabled:=false;
//DBGrid1.DataSource := nil;
with Q1 do begin
close;
sql.Clear;
sql.Add('select distinct ID from table1');
ExecSQL;
//Open;
end;
{$apptype console}
. . .
First;
while not Q2.EOF do begin
writeln( (FieldByName('ID').AsString) );
Next;
end;
EatMyShorts писал(а):И почему когда в приложении пытаюсь сделать так:
{$apptype console}
. . .
First;
while not Q2.EOF do begin
writeln( (FieldByName('ID').AsString) );
Next;
end;
программа падает.
Потому что First и Next должны идти только как методы Q2, а не сами по себе.
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 26