在向数据库插入字符串时,一些特殊字符怎么处理?

Bill_Gates 2002-08-21 12:40:45
我的程序要把一个Memo里面的内容插入到数据库的一个TEXT字段里面去。但Memo中如果有特殊字符,就会出错。比如单引号、斜杠。如果用DBMemo就不会有这些问题,好像BCB会给适当的处理。现在条件限制,只能用Memo,该如何处理?有没有相应的函数?
...全文
267 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Bill_Gates 2002-08-21
  • 打赏
  • 举报
回复
是否要在变量定义的时候使用:
EXEC SQL BEGIN DECLARE SECTION
...
EXEC SQL END DECLARE SECTION
Bill_Gates 2002-08-21
  • 打赏
  • 举报
回复
其实我的意思是说SQL语句中的参数是程序中的参数还是用SQL语句定义的参数?
kingcaiyao 2002-08-21
  • 打赏
  • 举报
回复
可不可以是一个AnsiString?

这要看看你在表结构中将该字段定义成什么类型的字段
Bill_Gates 2002-08-21
  • 打赏
  • 举报
回复
请问如果用参数的方式来处理该怎么做?能不能详细一点?那个参数是SQL的参数还是BCB的参数?可不可以是一个AnsiString?
kingcaiyao 2002-08-21
  • 打赏
  • 举报
回复
你这样,用TBlobField字段来处理,程序片段:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
TQuery *Query=new TQuery(this);
Query->DatabaseName="all_ttmis";
Query->RequestLive=true;
Query->Close();
Query->SQL->Clear();
Query->SQL->Add("select * from yourtable");
Query->Open();
Query->Edit();
TMemoField *pField=(TMemoField*)Query->FieldByName("YourTextField");
pField->Assign(YourMemo->Lines);
delete Query;
}
para 2002-08-21
  • 打赏
  • 举报
回复
如果用Query来更新数据最好使用参数的方式:
Update table set FieldName=:Param1
然后再Query得Param地相应参数中填入数据执行即可。
yeahe 2002-08-21
  • 打赏
  • 举报
回复
有这样的函数,先把你那个memo的TEXT变成AnsiString对象的实例,
这个对象有许多处理的函数,看看帮助把,因为我也不熟
wangyelon 2002-08-21
  • 打赏
  • 举报
回复
不知道你到底是有什么需要,要保留这些特殊字符?
实际上,你在数据库定义的是文本类型的话,就算有特殊字符也不会错的
我也写过插入的代码
如果是其他如日期,数值等,你用什么来插还不都要出错,
要写函数过滤掉的话,

AnsiString myText=Memo1->Text;
myText.Trim(); //Trim()是去掉两头的空格
//注意是打点,打了以后就弹出提示可用的函数了
//还有什么Fomart(...)
//当然也有可替换某些特殊字符的函数

1,178

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 数据库及相关技术
社区管理员
  • 数据库及相关技术社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧