Вниз
Скачать: CL | DM;

Chr(39)   Найти похожие ветки 

 
VeryLongString   (2007-01-28 12:24) [0]

Здравствуйте. При помощи ADOCommand1 выполняю запрос в Access базу, но случилась такая проблема. Одна из переменных на добавление (допустим OOthe - Ldb.Other), содержит такой текст: hello i"m a"a"dkfdnfdjfdf;df"dsfee"rrrr"pp2"
И тогда при выполнении запроса получается не приятная ситуация, а именно: Ошибка синтаксиса (пропущен оператор) в выражении запроса...
Можно как-то это исправить? (Исключая замену всех " в этой переменной)


         ADOCommand1.CommandText := "INSERT INTO Informations " +
         "(OName, OAdministrator, OAdministratorEmail, OOther" +
         "...........)" +
         " VALUES " +
         Format("(""%s"", ""%s"",""%s"",""%s"",""%s"",""%s"",""%s"",""%s"",""%s"",""%s"",""%s"",""%s"",""%s"",""%s"")",
         [
           Ldb.Name, Ldb.Administrator, Ldb.Email, Ldb.Other....          

         ]);
   

      ADOCommand1.Execute;


 
Desdechado ©   (2007-01-28 12:36) [1]

Уж сколько раз твердили миру...
Параметры использовать. Через них хоть черта протолкнуть можно...


 
Olivetti   (2007-01-29 01:36) [2]

ADOCommand1.CommandText := ...;
ShowMessage(ADOCommand1.CommandText); // Посмотри, проверь корректность синтаксиса с точки зрения SQL сервера
ADOCommand1.Execute;


 
Desdechado ©   (2007-01-29 10:51) [3]

Olivetti   (29.01.07 01:36) [2]
Там и проверять нечего, и так все ясно. Апостроф является ограничителем строковых констант. Поэтому наличие апострофа в строке приводит к вымиранию команды.
ADOCommand1.CommandText := "INSERT INTO Informations(a,b) VALUES(:P0, :P1)";
ADOCommand1.Parameters.ParamByName("P0").Value:=1;
...
...Execute;


 
sniknik ©   (2007-01-29 11:17) [4]

> Поэтому наличие апострофа в строке приводит к вымиранию команды.
можно задублировать кавычки внутри строки,  как и в дельфе, тогда все будет нормально...
но к легкости понимания и эффективности кода это не приведет...

меня одно только использование Format в [0] подобном виде коробит просто, ужас какойто... а потом начнут подобное в циклы вставлять на для множественных вставок и "плакать", что медленно работает.



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

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
3-1167053354
superlamer
2006-12-25 16:29
2007.04.15
компоненты для работы с базой данных *.cdb


3-1169469204
Patrick
2007-01-22 15:33
2007.04.15
Множество комманд в одном запросе


10-1131360404
NORDmen
2005-11-07 13:46
2007.04.15
вызов word из dll


3-1169628531
pavel_guzhanov
2007-01-24 11:48
2007.04.15
Как передать параметр в хранимую процедуру


15-1173870989
Большой Джек
2007-03-14 14:16
2007.04.15
Стрим подешевел до 8 баксов




   Наверх