SQL.Add('(Fio = "'+ fam + '")');
переписать
SQL.Add('Fio =:fam');
...
...
SQL.Parametrs.ParamByName("fam").Value =:fam;
Проблема с с запросом по БД.
Ошибка: Invalid field Name.
procedure TForm1.Button1Click(Sender: TObject);
var
fam: string[30];
begin
fam:=InputBox('выборка из БД.', '');
if fam <> ''
then
begin
with form1.Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT raion, fio, number, zayav');
SQL.Add('FROM ":Passport:test_base.dbo"');
SQL.Add('WHERE');
SQL.Add('(Fio = "'+ fam + '")');
SQL.Add('ORDER BY number, Fio');
Open;
end;
if Query1.RecordCount <> 0 then
DataSource1.DataSet:=Query1
else begin
ShowMessage('нет записей.');
DataSource1.DataSet:=Table1;
end;
end;
end;
А какие в табличке имена полей? Кстати, у тебя в одном месте написано 'fio', а в другом 'Fio', может эта БД регистр учитывает?
обычно указывается какое Field Name инвалидом считается
ЗЫ: лучше параметризированный запрос использовать
Код:
Цитата: wanja
А какие в табличке имена полей? Кстати, у тебя в одном месте написано 'fio', а в другом 'Fio', может эта БД регистр учитывает?
в табличке имя полей: raion, fio, number, zayav.
еще показывает ошибку что не найдено таблица test_base.dbo
Я написал в запросе фамилию Иванов, выводит такую ошибку на рисунке
[highlight=Delphi]
procedure TForm1.Button1Click(Sender: TObject);
var
fam: string[30];
begin
fam:=InputBox('выборка из БД.', '');
if fam <> '' then
begin
with form1.Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT raion, fio, number, zayav');
SQL.Add('FROM ":Passport:test_base.dbo"');
SQL.Add('WHERE Fio=:pFam');
SQL.Add('ORDER BY number, Fio');
Prepared:=true;
Parameters.ParamByName('pFam').Value:=fam;
Open;
end;[/highlight]
Так пробуй
Thanks получилась.