|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Проблема со вставкой записей в таблицу
есть 2 базы под firebird 1.5 записи из одной нужно перенести в другую делаю так q1,q2-компоненты ibsql
Код:
q1.Close; q1.SQL.Clear; q1.SQL.Add('insert into address Values('); q1.SQL.Add(Format('''%s'',',[(q2.FieldByName('mail_title').AsString)])); if Length(q2.FieldByName('rec_date_change').AsString) <> 0 then q1.SQL.Add(Format('''%s'',',[q2.FieldByName('rec_date_change').AsString])) else q1.SQL.Add('null'); q1.SQL.Add(');'); q1.ExecQuery; в одном из значений mail_title содержиться '7Б' - в ковычках в исходной базе при переносе этой записи прога вываливаеться с ошибкой unexpected end of command. Пробовал делать без format а заключить все это в chr(39) - непомогло. Помогите пожалуйста незнаю че делать. Последний раз редактировалось Admin, 05.09.2010 в 18:10. |
#2
|
||||
|
||||
Функцию формат для формирования запроса по возможности старайтесь не применять, очень сложно без отладки проанализировать результат.
Лучше это делать через параметры, примерно так: Код:
q1.sql.text := 'insert into address values(:mail_title,:rec_date_change)'; q1.parameters.paramvalue['mail_title'] := q2.FieldByName('mail_title').AsString; q1.parameters.paramvalue['rec_date_change'] := q2.FieldByName('rec_date_change').AsString q1.ExecQuery; Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#3
|
|||
|
|||
у меня такой функции q1.parameters.paramvalue вообще нет delphi 7 ее непонимает
|
#4
|
|||
|
|||
Огромное спосибо! Заработало
Вы были правы!!!
|