我用delphi6同时向两个表中插入记录,两个表中的字段属性一样,可是为什么一个表可以插入完整的汉字字符串,而另一个却只能输入一个汉字,为什么?如果是字符集的问题,为什么一个能插入另一个却不行?两个表的字段属性都是varchar(64)请指教,急急急!多谢了!

解决方案 »

  1.   

    忘说了,我用的是参数格式
    parameters.ParamByName('MyCompanyName').Value                :='采风报';
      

  2.   


    你要設置param的數據類型啊
      

  3.   


    parameters.ParamByName('MyCompanyName').datatype=ftWideString就行啦@@!!
      

  4.   

    JonnySun() 兄弟:你是说 
     parameters.ParamByName('MyCompanyName').DataType             :=ftWideString;
      parameters.ParamByName('MyCompanyName').Value                :='采风报';吗?
    怎么还不行,还是只能输入一个汉字,再说,就是行也太麻烦了,难道么一个一个写吗?我可是有20多个参数呀,而且有20多个表.
      

  5.   

    我的试验源程序: 
    var
        SQLStr :String;
      begin
        SQLStr:='select * from SystemSetting';
        with ADOQuery1 do
        begin
          close;
          SQL.clear;
          SQL.Add(SQLStr);
          open;
          if RecordCount<>0 then
          begin
            sql.Add('delete from SystemSetting');// &Egrave;&ccedil;&sup1;&ucirc;&frac14;&Ccedil;&Acirc;&frac14;&acute;&aelig;&Ocirc;&Uacute;&frac34;&Iacute;&frac12;&laquo;&AElig;&auml;&Eacute;&frac34;&sup3;&yacute;,&Egrave;&raquo;&ordm;ó&Ocirc;&Uacute;&sup2;&aring;&Egrave;&euml;&frac14;&Ccedil;&Acirc;&frac14;
          end;
          sql.Add('insert into SystemSetting(CompanyName,CompanyAddress,CompanyPhone,ContactMan,'
              +'Website,Bank,Account,Postcode,CurrentChargeStandardStartTime,'
              +'Email,CurrenySymbol,DateFormat,FrozenTime)'          +'values(:MyCompanyName,:MyCompanyAddress,:MyCompanyPhone,:MyContactMan,'
              +':MyWebsite,:MyBank,:MyAccount,:MyPostcode,:MyCurrentChargeStandardStartTime,'
              +':MyEmail,:MyCurrenySymbol,:MyDateFormat,:MyFrozenTime)');       parameters.ParamByName('MyCompanyName').DataType             :=ftWideString;
           parameters.ParamByName('MyCompanyName').Value                :='采风报';
           parameters.ParamByName('MyCompanyAddress').Value             :='采风报';
           parameters.ParamByName('MyCompanyPhone').Value               :='采风报';
           parameters.ParamByName('MyContactMan').Value                 :='采风报';
           parameters.ParamByName('MyWebsite').Value                    :='采风报';
           parameters.ParamByName('MyBank').Value                       :='采风报';
           parameters.ParamByName('MyAccount').Value                    :='采风报';
           parameters.ParamByName('MyPostcode').Value                   :='采风报';
           parameters.ParamByName('MyCurrentChargeStandardStartTime').Value:='1999';
           parameters.ParamByName('MyEmail').Value                      :='采风报';
           parameters.ParamByName('MyCurrenySymbol').Value              :='采风报';
           parameters.ParamByName('MyDateFormat').Value                 :='采风报';
           parameters.ParamByName('MyFrozenTime').Value                 :='1999';       execSql;
        end;
      end;
    end.
    麻烦大家给看一下,急呀!
      

  6.   

    问题已经解决,是因为两个Time字段的属性应为1999-1-1形式,我写错了,会存进去1999,但会影响别的字段的输入.改为now或者1999-1-1形式后,可以正常插入了.
      

  7.   

    晕,看贴子看久了,忘了标题了,sorry
    sqlstr:='insert into table1 values ('''+Edit1.Text+''')';
    with ADOQuery1 do
        begin
          close;
          SQL.clear;
          SQL.Add(SQLStr);
          execute;
        end;
    end;