首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

关于插入记录提示类型不匹配的有关问题

2012-03-07 
关于插入记录提示类型不匹配的问题procedureTfrmExcel.CreateTmpTablebeginwithtblTmpdobeginActive:Fal

关于插入记录提示类型不匹配的问题
procedure   TfrmExcel.CreateTmpTable;
begin
        with   tblTmp   do
        begin
            Active   :=   False;
            TableName   :=   MakeTempFileName;
            with   FieldDefs   do
            begin
                Clear;
                Add( 'CONTENT ',   ftString,   254,   False);
                Add( 'MEMO ',   ftString,   254,   False);
            end;
            CreateTable;
            Open;
        end;

end;


////////////////

  with   qrySMSExs   do       //利用query
                    begin
                        DatabaseName   :=   DM.Database1.DatabaseName;
                          Sql.Clear;
                          Sql.Add( 'insert   into   SMS(ID,   INX,   CONTENT,MEMO) ');
                          Sql.Add( 'values   (:ID,   :INX   ,   :CONTENT,   :MEMO) ');
                          ParamByName( 'ID ').AsString   :=     CATALOG_ID   ;
                          ParamByName( 'INX ').AsInteger   :=   INX         ;

                        showmessage(tblTmp.FieldByName( 'CONTENT ').AsString);
                        showmessage(tblTmp.FieldByName( 'MEMO ').AsString);
                        ParamByName( 'CONTENT ').AsString   :=     tblTmp.FieldByName( 'CONTENT ').AsString;
                        ParamByName( 'MEMO ').AsString   :=     tblTmp.FieldByName( 'CONTENT ').AsString;
                   
                        //   ParamByName( 'CONTENT ').AsString   :=   tblTmp.FieldValues[ 'CONTENT ']   ;
                        //   ParamByName( 'MEMO ').AsString   :=       tblTmp.FieldValues[ 'MEMO '];
           
                        ExecSQL;
                    end   ;

ExecSQL时   为何提示类型不匹配,而下边这段代码又可以正常插入数据
  with   tblFromExcel     do     //利用表


                    begin
                        DatabaseName   :=   DM.Database1.DatabaseName;
                        TableName   :=   'SMS '   ;
                        Open;
                        Append;
                        FieldValues[ 'ID ']   :=   CATALOG_ID   ;
                        FieldValues[ 'INX ']   :=   INX;
                        FieldValues[ 'CONTENT ']   :=     tblTmp.FieldValues[ 'CONTENT ']   ;;
                        FieldValues[ 'MEMO ']   :=     tblTmp.FieldValues[ 'MEMO ']   ;   ;
                        //try
                        Post;
                    end   ;




[解决办法]
ParamByName( 'CONTENT ').value:= tblTmp.FieldByName( 'CONTENT ').AsString;
ParamByName( 'MEMO ').value:=......

不用asstring

[解决办法]
Sql.Add( 'insert into SMS(ID, INX, CONTENT,MEMO) ');
Sql.Add( 'values (:ID, :INX , :CONTENT, :MEMO) ');
ParamByName( 'ID ').DataType := ftString;
ParamByName( 'ID ').ParamType := ptInput;
ParamByName( 'INX ').DataType := ftInteger;
ParamByName( 'INX ').ParamType := ptInput;
ParamByName( 'CONTENT ').DataType := ftString;
ParamByName( 'CONTENT ').ParamType := ptInput;
ParamByName( 'MEMO ').DataType := ftString;
ParamByName( 'MEMO ').ParamType := ptInput;
....

热点排行