Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.02.11;
Скачать: [xml.tar.bz2];

Вниз

Кавычки в текстовых полях 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.043 c
15-1169451377
Rule
2007-01-22 10:36
2007.02.11
Вот наконец и я созрел сделать свой личный сайт :-)


4-1159370729
vidiv
2006-09-27 19:25
2007.02.11
Нужно ли освобождать память (GlobalFree) при копировании в Б/О


15-1169224186
Pasha L
2007-01-19 19:29
2007.02.11
Где мне можно чего нить почитать про ипользование прокси?


15-1169228956
vrem
2007-01-19 20:49
2007.02.11
Есть ли у Вас проблемы с головой?


2-1169489805
Pasha L
2007-01-22 21:16
2007.02.11
Новый поток или просто processMessages





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский