Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.12.30;
Скачать: CL | DM;

Вниз

не могу сделать INSERT через ADO в MSSQL базу   Найти похожие ветки 

 
Добрый   (2007-08-26 15:07) [0]

помогите плиз, может кто знает! я делаю вот так:

DataModule2.ADOQuery_AddComp.SQL.Add("DECLARE @FIO varchar(50)");
DataModule2.ADOQuery_AddComp.SQL.Add("SET @FIO="+Edit1.Text);
DataModule2.ADOQuery_AddComp.SQL.Add("INSERT INTO RemontPC (FIO, date_priem, Status) VALUES (");
DataModule2.ADOQuery_AddComp.SQL.Add("@FIO,"+DateTimeToStr(Now)+","+"""В ремонте"")");
DataModule2.ADOQuery_AddComp.ExecSQL;

во время выполнения этого запроса вылетает ошибка "Неправильно определен объект Parameter. Предоставлены несовместимые или неполные сведения". Что не так?


 
Johnmen ©   (2007-08-26 15:16) [1]

INSERT INTO RemontPC (FIO, date_priem, Status) VALUES (:FIO, :date_priem, :Status)

Читать справку (Delphi) про параметрические запросы.


 
Добрый   (2007-08-26 15:24) [2]

А при чём тут Delphi? Ведь запрос по идее уходит на сервер, и ошибка приходит оттуда, или я не прав?


 
Johnmen ©   (2007-08-26 15:52) [3]

Я показал, как делать классически, универсально и оптимально, а не через ж...

> А при чём тут Delphi?

Это у тебя надо спросить, почему на сайте дельфистов ты вопрос задаёшь...:)


 
Добрый   (2007-08-26 16:01) [4]

ну лан, спасибо, пойду хелп читать)))


 
MsGuns ©   (2007-08-26 21:50) [5]

DataModule2.ADOQuery_AddComp.SQL.Add("SET @FIO="+QuotedStr(Edit1.Text));


 
sniknik ©   (2007-08-26 23:34) [6]

MsGuns ©   (26.08.07 21:50) [5]
не поможет, ошибка в [0] не изза этого, а изза "+DateTimeToStr(Now)+", т.к. присутствуют двоеточия в строке.

в [1] с параметрами самый верный вариант. зачем еще чтото выдумывать?


 
Добрый   (2007-08-27 11:20) [7]

итак, мастера, почитал я и сделал вот так:

with DataModule2.ADOQuery_AddComp do begin
       SQl.Clear;
       SQl.Add("INSERT INTO RemontPC ");
       SQl.Add("(FIO, date_in, Status) ");
       SQl.Add("VALUES (:FIO, :Date, ""В ремонте"")");
       Parameters.ParamByName("FIO").Value := Edit1.Text;
       Parameters.ParamByName("Date").Value := DateToStr(Now);
       ExecSQL
       end;

Теперь все работает!

Большое спасибо!!!


 
sniknik ©   (2007-08-27 12:04) [8]

вот это - DateToStr лишнее, и чревато ошибками. убери.

а еще замени ADOQuery на ADOCommand.



Страницы: 1 вся ветка

Текущий архив: 2007.12.30;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
6-1174490071
Fantom348
2007-03-21 18:14
2007.12.30
URL Decoding


15-1196412172
BAX
2007-11-30 11:42
2007.12.30
FastReport Server ?


2-1196914687
Skyle
2007-12-06 07:18
2007.12.30
Перенос главной формы приложения на другой монитор


2-1195211860
Yurij-7
2007-11-16 14:17
2007.12.30
Помогите с запросом


15-1196334539
de.
2007-11-29 14:08
2007.12.30
Ребят, поможите...