怪事情,存入ACCESS数据库中,只有同时存在":两个符号就会出错??(100分)

  • 主题发起人 主题发起人 jadesun
  • 开始时间 开始时间
J

jadesun

Unregistered / Unconfirmed
GUEST, unregistred user!
只要文章中同时存在":两个符号在同一行中,就会出错
添加的代码如下:

procedure TForm1.Button1Click(Sender: TObject);
Var
s:String;
begin
s:=Memo1.Lines.Text;
If edit1.Text = '' Then
Begin
ShowMessage('错误:你必须填写文章标题');
Exit;
End;
AdoQuery1.Close;
AdoQuery1.SQL.Clear ;
AdoQuery1.SQL.Add('Select Text_Title From Text_data Where Text_Title = '''+Edit1.Text+'''');
Try
AdoQuery1.Open;
Except
Exit;
End;
If Not AdoQuery1.Eof Then
Begin
ShowMessage('错误:这个标题已经存在');
Exit;
End;
AdoQuery1.Close;
AdoQuery1.SQL.Clear ;
AdoQuery1.SQL.Add('Insert into Text_Data (Text_Title,Text_Content) values ('''+Edit1.Text+''','''+StringReplace(s,'''','**',[rfReplaceAll])+''')');
Try
AdoQuery1.ExecSQL;
Except
on e:exception do
ShowMessage(''+e.Message+'');
End;
ShowMessage('成功的添加了此文章');
TwoNode := TreeView1.Items.AddChild(OneNode,''+Edit1.Text+'');
end;
 
错误出在哪个位置,你给标出来一下。
 
出错提示为:

parameter 对象被不正确的定义。提供了不一致或不完整的信息
 
你这样子累不累阿,为什么不用参数那?比如:
AdoQuery1.SQL.Add('Select Text_Title From Text_data Where Text_Title = :title);
这样子出错的机会大大减少
 
....+QuotedStr(Edit1.Text)+.....
 
设置AdoQuery1.ParamCheck :=False;
 
有冒号时,SQL将冒号作为参数对待,所以会出错。
 
呵呵,把单个:改成两个:就可以乐
 
多人接受答案了。
 
后退
顶部