Текущий архив: 2007.02.11;
Скачать: CL | DM;
ВнизКавычки в текстовых полях SQL-запросов Найти похожие ветки
← →
Егоров А.Н. (2007-01-25 10:41) [0]Подскажите, пожалуйста, как написать кавычки в текстовом поле таблицы (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="ООО ""Предприятие"""".
← →
stone © (2007-01-25 10:46) [1]
> Егоров А.Н. (25.01.07 10:41)
Сколько раз уже обсуждалось - пользуйся параметрами.
← →
ЮЮ © (2007-01-25 10:54) [2]Надеюсь твоя прога поддерживает весь известный перечень предприятий? :) Или пользователю тяжело "ООО" набрать? Зачем это в коде программы?
ADOQuery.SQL.Text := "Update "C:\table_1.dbf" set name= :name where code = :code";
ADOQuery.Parameters[0].Value := NameEdit.Text;
ADOQuery.Parameters[1].Value := ...
P.S. Update запрос и само ADO может сформировать и выполнить. Достаточно в TDBEdite исправить значение поля name.
← →
zdm © (2007-01-25 17:47) [3]
> Егоров А.Н. (25.01.07 10:41)
Параметры это лучшее решение. Но если нравятся кавычки поюзай QuotedStr("dddddd")
← →
Makcim © (2007-01-25 17:48) [4]Если хочеш что б SQL не видел кавычек используй #39, это таже самая кавычка, только SQL не определит её как конец запроса !
← →
Johnmen © (2007-01-25 17:51) [5]
> Makcim © (25.01.07 17:48) [4]
> Если хочеш что б SQL не видел кавычек используй #39, это
> таже самая кавычка, только SQL не определит её как конец
> запроса !
А какую определит?
← →
Makcim © (2007-01-25 18:32) [6]Johnmen ©
""
← →
Johnmen © (2007-01-25 18:42) [7]
> Makcim © (25.01.07 18:32) [6]
> ""
Какую из них?
← →
Makcim © (2007-01-25 19:40) [8]Johnmen ©
Используй " .... Всё что находится в рамках кавычек "...." SQL воспринимает как запрос и обрабатывает его сообтветственно. Если же тебе надо вставить в текс запроса значение допустим лейбела выделяется с помощью #39 что б SQL не прореагировал на кавычки.
Приведу текс примера написания запроса в делфе:
Query1.SQL.Append("SELECT *"+
" FROM Query1WHERE ("+"""+"DATE"+"""+
" BETWEEN "+#39+Data_Qvery1 +#39+" and "+#39+Data_Qvery2+#39+
")");
В этом примере расмотрено использование и #39, и "
← →
Makcim © (2007-01-25 19:47) [9]Data_Qvery1
Data_Qvery2
Это переменные типа string
← →
Johnmen © (2007-01-25 19:52) [10]
> Makcim © (25.01.07 19:40) [8]
Спасибо за разъяснение.
От только не могу вспомнить, что за символ #39. Ты не помнишь?
← →
Makcim © (2007-01-25 20:04) [11]Johnmen ©
#39 - "
← →
sniknik © (2007-01-25 20:54) [12]Makcim © (25.01.07 20:04) [11]
зажми Alt и начинай набирать на доп. раскладке (цифровой квадрат справа у клавиатуры) 3 9 и отпусти Alt, получилось? а что получилось?... ;)
← →
Плохиш © (2007-01-26 14:17) [13]
> Makcim © (25.01.07 19:40) [8]
А теперь внеси в свои Data_Qvery1 или Data_Qvery2 строку Д"Артаньян и удивись, куда тебя твой пример пошлёт.
← →
zdm © (2007-01-26 14:28) [14]Можно до бесконечности трясти данную тему, но вывод один ПАРАМЕТРЫ. Если со строковыми переменными еще как-то можно поизвращаться, то с Датами и временем, да и с вещественным типом, начинается натыкалово на специфику БД. А через параметры, мы всегда разговариваем с БД на одном языке.
← →
Makcim © (2007-01-26 21:35) [15]Плохиш ©
Эту ситуация я обошел обычным if else, который убирает ковычку или конвертирует в дос !!!
← →
Makcim © (2007-01-26 21:35) [16]zdm ©
Согласен на все 100 %
← →
Makcim © (2007-01-26 21:37) [17]sniknik ©
Я знаю о этом давно !!!
← →
Johnmen © (2007-01-26 21:53) [18]
> Makcim © (26.01.07 21:35) [15]
Ты чуть-чуть до орешника не дотягиваешь.
← →
Olivetti (2007-01-26 22:10) [19]Ты чуть-чуть до орешника не дотягиваешь.
Макс, еще немного, еще чуть-чуть!
← →
serko © (2007-01-26 22:30) [20]
> ЮЮ © (25.01.07 10:54) [2]
Можна о параметра по подробнее?
Как я понимаю Параметр нужно сначала создать, потом ему значение присвоить, потом выполнить SQL а аж потом удалить параметр.
Вот можна мои слова перевести в практический пример?
← →
Johnmen © (2007-01-26 22:42) [21]
> Вот можна мои слова перевести в практический пример?
Твои слова не все подлежат переводу. Только эти - "ему значение присвоить, потом выполнить SQL".
Как перевести? Лучше всего это знает F1 на Params.
← →
sniknik © (2007-01-26 23:30) [22]sniknik ©
> Я знаю о этом давно !!!
о том что #39 = " (Alt + (up описание) тому проверка)
?
а что же ты тогда пишешь
Makcim © (25.01.07 20:04) [11]
> Johnmen ©
> #39 - "
?
какойто другой символ? раз неправильно пишешь значит не знаеш, я сказал как узнать.
← →
Anatoly Podgoretsky © (2007-01-26 23:33) [23]Как собака, все понимает, но сказать не может.
← →
serko © (2007-01-27 00:24) [24]
> Johnmen © (26.01.07 22:42) [21]
А как же насчет создать и удалить?
У меня выскакиевает Ошибка что такого параметра не существует...
← →
Плохиш © (2007-01-27 00:55) [25]
> serko © (27.01.07 00:24) [24]
А чем примеры из справки не помогают?
Страницы: 1 вся ветка
Текущий архив: 2007.02.11;
Скачать: CL | DM;
Память: 0.5 MB
Время: 0.052 c