![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Кавычки в текстовых полях SQL-запросов
Егоров А.Н. © (2007-01-25 10:41:00)Подскажите, пожалуйста, как написать кавычки в текстовом поле таблицы (Delphi 7, ADO, провайдер VFPOLEDB v.8, базы FoxPro 3.x). Запрос на изменение записи:
with ADOQuery.SQL do
begin
Clear;
Add('Update "C:\table_1.dbf"');
Add(' set name="ООО ""Предприятие"""');
Add(' where code="000001"');
end;
ADOQuery.ExecSQL;
выдает ошибку "Command contains unrecognized phrase/keyword", которая связана с
' set name="ООО ""Предприятие"""'.
Плохиш (2007-01-27 00:55:00) [1]
> serko © (27.01.07 00:24) [24]
А чем примеры из справки не помогают?
serko (2007-01-27 00:24:00) [2]
> Johnmen © (26.01.07 22:42) [21]
А как же насчет создать и удалить?
У меня выскакиевает Ошибка что такого параметра не существует...
Anatoly Podgoretsky (2007-01-26 23:33:00) [3]Как собака, все понимает, но сказать не может.
sniknik (2007-01-26 23:30:00) [4]sniknik ©
> Я знаю о этом давно !!!
о том что #39 = ' (Alt + (up описание) тому проверка)
?
а что же ты тогда пишешь
Makcim © (25.01.07 20:04) [11]
> Johnmen ©
> #39 - "
?
какойто другой символ? раз неправильно пишешь значит не знаеш, я сказал как узнать.
Johnmen (2007-01-26 22:42:00) [5]
> Вот можна мои слова перевести в практический пример?
Твои слова не все подлежат переводу. Только эти - "ему значение присвоить, потом выполнить SQL".
Как перевести? Лучше всего это знает F1 на Params.
serko (2007-01-26 22:30:00) [6]
> ЮЮ © (25.01.07 10:54) [2]
Можна о параметра по подробнее?
Как я понимаю Параметр нужно сначала создать, потом ему значение присвоить, потом выполнить SQL а аж потом удалить параметр.
Вот можна мои слова перевести в практический пример?
Olivetti (2007-01-26 22:10:00) [7]Ты чуть-чуть до орешника не дотягиваешь.
Макс, еще немного, еще чуть-чуть!
Johnmen (2007-01-26 21:53:00) [8]
> Makcim © (26.01.07 21:35) [15]
Ты чуть-чуть до орешника не дотягиваешь.
Makcim (2007-01-26 21:37:00) [9]sniknik ©
Я знаю о этом давно !!!
Makcim (2007-01-26 21:35:00) [10]zdm ©
Согласен на все 100 %
Makcim (2007-01-26 21:35:00) [11]Плохиш ©
Эту ситуация я обошел обычным if else, который убирает ковычку или конвертирует в дос !!!
zdm (2007-01-26 14:28:00) [12]Можно до бесконечности трясти данную тему, но вывод один ПАРАМЕТРЫ. Если со строковыми переменными еще как-то можно поизвращаться, то с Датами и временем, да и с вещественным типом, начинается натыкалово на специфику БД. А через параметры, мы всегда разговариваем с БД на одном языке.
Плохиш (2007-01-26 14:17:00) [13]
> Makcim © (25.01.07 19:40) [8]
А теперь внеси в свои Data_Qvery1 или Data_Qvery2 строку Д'Артаньяни удивись, куда тебя твой пример пошлёт.
sniknik (2007-01-25 20:54:00) [14]Makcim © (25.01.07 20:04) [11]
зажми Alt и начинай набирать на доп. раскладке (цифровой квадрат справа у клавиатуры) 3 9 и отпусти Alt, получилось? а что получилось?... ;)
Makcim (2007-01-25 20:04:00) [15]Johnmen ©
#39 - "
Johnmen (2007-01-25 19:52:00) [16]
> Makcim © (25.01.07 19:40) [8]
Спасибо за разъяснение.
От только не могу вспомнить, что за символ #39. Ты не помнишь?
Makcim (2007-01-25 19:47:00) [17]Data_Qvery1
Data_Qvery2
Это переменные типа string
Makcim (2007-01-25 19:40:00) [18]Johnmen ©
Используй ' .... Всё что находится в рамках кавычек '....' SQL воспринимает как запрос и обрабатывает его сообтветственно. Если же тебе надо вставить в текс запроса значение допустим лейбела выделяется с помощью #39 что б SQL не прореагировал на кавычки.
Приведу текс примера написания запроса в делфе:
Query1.SQL.Append('SELECT *'+
' FROM Query1WHERE ('+'"'+'DATE'+'"'+
' BETWEEN '+#39+Data_Qvery1 +#39+' and '+#39+Data_Qvery2+#39+
')');
В этом примере расмотрено использование и #39, и "
Johnmen (2007-01-25 18:42:00) [19]
> Makcim © (25.01.07 18:32) [6]
> "'
Какую из них?
Makcim (2007-01-25 18:32:00) [20]Johnmen ©
"'