Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.02.11;
Скачать: CL | DM;

Вниз

Помогите решить проблему !   Найти похожие ветки 

 
Yakudza   (2002-01-14 18:41) [0]

Вот есть такая проблема.
Я добавляю текст в базу вот таким образом:

SQL := ("UPDATE general SET des = " + """ +Trim(Memo1.Text + """ + " WHERE id = " +IntToStr(cid));
...
DM.qAddDesc.SQL.Text := SQL;
DM.qAddDesc.ExecSQL;
...

Но текст содержит какие угодно символы типа /":" и т.д. когда пытаешся сделать ExecSQL получаеться матюк и данные не вставляються. Если это происходит я заменяю все стрёмные символы на двойные, вообщем вроде все нормально но вот проблема с двоеточиями я их заменяю на двойные и они так и записываються в базу, вообщем каждое редактирование текста и двоеточия плодяться со страшной силой :)
Подскажите в чем проблема, как передать ВСЕ символы в SQL запрос.


 
dmitryK   (2002-01-14 19:47) [1]

- отключи использование параметров в запросе:

DM.qAddDesc.ParamCheck:=False;

должно нормально работать.
- апостроф заменяй на два подряд идущих
- остальные символы должны проходить без проблем если идут между открывющим и закрывающим апострофом
(хотя, у меня стоит MSSQL и иногда, когда в середине запроса встречается двойная кавычка, сервер решает что это конец строки и ругается - глюк, однако)



 
NDeu   (2002-01-15 11:57) [2]

А лучше работай параметрами :)


 
Dok_3D   (2002-01-15 13:41) [3]

Действительно, чем выполнять все требования, которые посоветовал dmitryK, гораздо проще и надежнее работать с параметрами,

Query.SQL.Add("UPDATE general SET des =:Text WHERE id =:Id ");
Query.Parameters.ParamByName("Text").DataType:=ftString;
Query.Parameters.ParamByName("Text").Value:=Memo1.Text;
Query.Parameters.ParamByName("Id").DataType:=ftInteger;
Query.Parameters.ParamByName("Text").Value:=cid;
Query.ExecSQL;

Тогда ты точно застрахован он всех сюрпризов твоего Memo1.Text,
для этого параметры и придумали.




 
Yakudza   (2002-01-15 14:42) [4]

Понятно.
Спасибо !



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

Текущий архив: 2002.02.11;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.01 c
3-32161
Макс
2002-01-16 16:45
2002.02.11
Проверка данных на программе клиенте


3-32152
Sergei
2002-01-16 13:03
2002.02.11
Номер записи в SQL-сервере


3-32125
harismatik
2002-01-15 13:38
2002.02.11
Поля BLOB в базе INTERBASE


1-32252
67108864
2002-01-26 19:09
2002.02.11
Console - textcolor.


14-32346
andey
2001-12-20 19:35
2002.02.11
куб. корень в exel