Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

не могу сделать INSERT через ADO в MSSQL базу [D6, MSSQL]


Добрый ©   (2007-08-26 15:07:00) 

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

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. Предоставлены несовместимые или неполные сведения". Что не так?


sniknik   (2007-08-27 12:04:00) [1]

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

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


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

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

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-26 23:34:00) [3]

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

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


MsGuns   (2007-08-26 21:50:00) [4]

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


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

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


Johnmen   (2007-08-26 15:52:00) [6]

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

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

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


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

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


Johnmen   (2007-08-26 15:16:00) [8]

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

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо