delphi的memo问题,怎么将在memo中输入换行后的多行数据都保存到数据库的一个字段下面
我的代码如下:
if not SameText(trim(Memo2.Lines.Text),'') then
      begin
      rzms:=Memo2.Lines.Text;//Memo2是在界面上接收输入的数据
      rzID:='R'+FormatDateTime('yyyymmddhhmmss',Now());
      With ADOQuery2 do
           begin
             Close;
             SQL.Clear;
             sqlstr:='insert into hrp_rwrz values('''+rzID+''','''+s+''','''+rwsxbs+''','''+datetimetostr(now)+''','''+rzms+''')';
             SQL.Add(sqlstr);
             ExecSQL;
           end;
      end;
在memo2中我输入以下数据:
a(回车后换行)
b
结果只要a被保存了,但是b没有被保存到这个数据库的nvarchar字段下

解决方案 »

  1.   

    将 #13 替换成 +char(13)+也可以用 Inset+Post 来实现哟
      

  2.   

    应该是Memo2.Text,而不是Memo2.Lines.Text
      

  3.   

    Memo2.Lines.Text读的只是Memo2指定的每一行,Memo2.Text就是全部
      

  4.   


      if not SameText(trim(Memo2.Lines.Text), '') then
      begin
        rzms := Memo2.Lines.Text; //Memo2是在界面上接收输入的数据
        rzID := 'R' + FormatDateTime('yyyymmddhhmmss', Now());
        with ADOQuery2 do
        begin
          Close;
          SQL.Clear;
          sqlstr := 'insert into hrp_rwrz values(''' + rzID + ''',''' + s + ''',''' + rwsxbs + ''',''' + datetimetostr(now) + ''',:rzms)';
          SQL.Add(sqlstr);
          Parameters.ParamByName('rzms').Value := rzms;
          ExecSQL;
        end;
      end;
      

  5.   

    楼上的大哥
    这句话执行怎么有错误啊,
    Parameters.ParamByName('rzms').Value := rzms;
    说rzms找不到
    我已经声明定义rzms:string;
    数据库里面这个字段是:ms
    但我换了还不行啊
      

  6.   

    sql语句还是用format写来比较清晰
      

  7.   

    你字段类型应该用MEMO类型的,否则长度是不够的
    如果是MEMO类型的字段还是出这种问题的话,你就用转义,将回车换行符替换成\n之类的转义符,在下次读取出来后在换回来就行了。
    我记得MEMO类型的貌似没这个问题