![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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
|
|||
|
|||
|
Вы были правы!!!
|