Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > html тэги в blob


Автор: sunnmas 17.9.2009, 15:19
качаю страничку из интернета и хочу запихнуть ее в blob поле (или text, не принципиально). Страница у меня в текстовом формате. Если начинать пихать их, то выдается брань о неправильном запросе (кавычки там и все такое, наверное встречаются). Как побороться?

Если нормальный текст туда без всяких там тэгов - все получается. Пользуюсь zeos. 

Query.SQL.Text:='INSERT INTO `users` (`index`,`username`,'+
          '`password`,`email`,`reg_error`,`last_page`) VALUES ('+
          IntToStr(FSiteIndex)+', "'+
          login+'", "'+password+'", "'+email_lst.Strings[i]+'", '+
          IntToStr(j)+', "asdad")';

вот asdad - данные которые идут в blob поле. Что делать когда там произвольный набор символов,, который возможно нарушает структуру запроса?

Автор: Frees 17.9.2009, 18:21
используй параметры

Код

Query.SQL.Text:='INSERT INTO `users` (`index`,`username`,'+
          '`password`,`email`,`reg_error`,`last_page`) VALUES (:index,:uname,:pass,:Mail,:err,:lastpage)';
Query.parambyname('ndex').Value :=  IntToStr(FSiteIndex);//или Query.params.parambyname('ndex').Value := ...
Query.parambyname('uname').asString := login;
Query.parambyname('pass').asString := password;
Query.parambyname('Mail').asString := email_lst.Strings[i]
.....


должно помочь 

Автор: sunnmas 17.9.2009, 20:42
Помогло!

         Query.SQL.Text:='INSERT INTO `users` (`index`,`username`,'+
          '`password`,`email`,`reg_error`,`last_page`) VALUES ('+
          IntToStr(FSiteIndex)+', "'+
          login+'", "'+password+'", "'+email_lst.Strings[i]+'", '+
          IntToStr(j)+', :lastpage)';
          Query.ParamByName('lastpage').AsString:=last_page;
          Query.ExecSQL;

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)