![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Слишком мало параметров, требуется 1 [D5, MS Access]
Viktor © (2003-05-02 15:07:00)Привет мастерам!
Нужен совет. Не хочет выполняться запрос.
function TFrmBookJob.RecordTrue(Tab, IdField: String): Boolean;
var
QId : TAdoQuery;
sSql : String;
begin
QId := TAdoQuery.Create(self);
QId.Connection := FrmMdi.AdoConnection;
sSql := "Select * from " + Tab + " Where Id = " + IdField;
QId.SQL.Add(sSql);
QId.Open;
if QId.RecordCount <> 0 then
Result := True
else
Result := False;
QId.Free;
end;
sunrider (2003-05-03 01:36:00) [1]Попробуй записать " Where Id = "" + IdField+"""
если конечно Id поле типа string
_Narayan_ (2003-05-02 15:23:00) [2]Это как я понимаю проверка наличия значения...
У меня так:
Функция проверяет наличия значения по полю с именем FieldName
в таблице TableName. Если проверяемое значение типа Sting то
при вызове: ZnachenieInt указываем NotNeedInt...
(при отсутствии проверяемого значения возвращяет TRUE)
...
const NotNeedInt=-2000000000;
NotNeedStr="E_m_p_t_y";
....
function TForm1.mNotValueExsists(TableName, FieldName, ZnachenieStr: String; ZnachenieInt: Integer): Boolean;
var S: String;
D: Integer;
begin
S:=NotNeedStr;
D:=NotNeedInt;
If ZnachenieInt<>NotNeedInt Then With IBSQL1 Do
Begin
Close;
SQL.Clear;
SQL.Append("Select "+FieldName+" From "+TableName+" Where "+FieldName+"=:P0");
Params[0].AsInteger:=ZnachenieInt;
ExecQuery;
D:=(IBSQL1.FieldByName(FieldName).AsInteger);
Close;
Result:=not(D=ZnachenieInt);
end
Else With IBSQL1 Do
Begin
Close;
SQL.Clear;
SQL.Append("Select "+FieldName+" From "+TableName+" Where "+FieldName+"=:P0");
Params[0].AsString:=ZnachenieStr;
ExecQuery;
S:=Trim(IBSQL1.FieldByName(FieldName).AsString);
Close;
Result:=not(S=ZnachenieStr);
end;
end;