// ...
with Parameters.AddParameter do
begin
Name:='pFam';
DataType:=ftString;
Value:=fam;
end;
Не могу найти ошибку.
Выводит ошибку (рисунок)
unit school2_;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, DBTables, ExtCtrls, DBCtrls, StdCtrls, ADODB;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
DBNavigator1: TDBNavigator;
DBText1: TDBText;
Button1: TButton;
ADOTable1: TADOTable;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
fam: string[30];
begin
fam:=InputBox('Выборка из БД',
'Введите фамилию и нажмите OK.', '');
if fam <> ''
then
begin
with form1.ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT No, Tip_Passp, Raion, FIO, number_zayavlenie,Date_zayavlenie');
SQL.Add('FROM "Test_Base"');
SQL.Add('WHERE FIO =: pFam');
//SQL.Add('ORDER BY Fio');
//Prepared:=True;
Parameters.ParamByName('pfam').Value:=fam;
//Params.ParamByName('pFam').Value:=fam;
Open;
end;
if ADOQuery1.RecordCount <> 0 then
DataSource1.DataSet:=ADOQuery1
else begin
ShowMessage('нет данных.');
DataSource1.DataSet:=ADOTable1;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
DataSource1.DataSet:=ADOTable1;
end;
procedure TForm1.FormActivate(Sender: TObject);
begin
DataSource1.DataSet := ADOTable1;
ADOTable1.Active := True;
end;
end.
Код:
Цитата: makbeth
Вручную добавь параметр pfam в ADOQuery1 и установи у него тип String с помощью визуального редактора или кодом:
Код:
// ...
with Parameters.AddParameter do
begin
Name:='pFam';
DataType:=ftString;
Value:=fam;
end;
with Parameters.AddParameter do
begin
Name:='pFam';
DataType:=ftString;
Value:=fam;
end;
Добавил, такая же ошибка выходит.
А где у тебя в запросе параметр pFam?
Цитата: wanja
А где у тебя в запросе параметр pFam?
параметр pFam в запросе указан.:)
Цитата: jengish
параметр pFam в запросе указан.:)
Если вы имеете ввиду эту строку, то как раз этого параметра у вас и нет.:
Код:
SQL.Add('WHERE FIO =: pFam');