-
всем привет народ подскажите в чом может быть проблема в 9 дельфе привиденный ниже код работает , а в 10 делфе во время выполнения выдает ошибку : не найден параметр :a1. в качестве сервера access
ADOConnection.LoginPrompt := False; ADOConnection.ConnectionString := connectstr;
try ADOQuery.SQL.Clear; ADOQuery.Parameters.Clear; ADOQuery.Close;
ADOQuery.SQL.text:='UPDATE [MAIN] SET [PROVERKA]= ''PR'', [CP]= ''PR'' WHERE [NOMER]= :a1'; ADOQuery.Parameters.ParseSQL(ADOQuery.SQL.text, true); ADOQuery.Parameters.ParamValues['a1']:=s; //s: string ADOQuery.ExecSQL;
finally ADOQuery.Parameters.Clear; ADOQuery.SQL.Clear; ADOQuery.Close; ADOConnection.Close; end;
-
вряд ли в 9-ке, скорее в том что делаешь не думая. наворотил кучу бессмысленных действий, не понимая зачем и как они работают, а после обвиняешь кого то кто в них запутался...
убери все лишнее. и используй ParamByName, он привычнее как то.
-
> народ подскажите в чом может быть проблема в 9 дельфе
Проблема в программисте. with ADOCommand do
begin
CommandText := 'UPDATE [MAIN] SET [PROVERKA]= ''PR'', [CP]= ''PR'' WHERE [NOMER]= :a1';
Parameters.ParamByName('a1').AsInteger := 10;
try
Execute;
except on E: Exception do
begin
end;
end;
end;
-
изначально использовалось именно // ADOQuery.Parameters.ParamByName('a1').DataType := ftstring; // ADOQuery.Parameters.ParamByName('a1').Value:=s;
но ошибка таже не найден параметр a1
щас попробую вариант от ega23
|