Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Помогите решить проблему ! [D6, Sybase]


Yakudza ©   (2002-01-14 18:41:00) 

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

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

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


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

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


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

Действительно, чем выполнять все требования, которые посоветовал 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,
для этого параметры и придумали.



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

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


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

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

DM.qAddDesc.ParamCheck:=False;

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


Наверх

Титульная страница Поиск, карта сайта Написать письмо