数据表:
教师代码表  JSDM
字段含义 字段名称 字段类型 长度 允许空
教师代码 JSDM Char 2
姓名 XM Char 8
性别 XB Char 2
职称 ZC Char 10
添加代码:
procedure TJSZL.Button1Click(Sender: TObject);
begin
   GLY.ClientDataSet1.Close;
   GLY.ClientDataSet1.CommandText:='insert into JSDM(JSDM,XM,XB,ZC) values(:s1,:s2,:s3,:s4) select * from JSDM';
   GLY.ClientDataSet1.Params.ParamByName('s1').AsString:=Edit1.Text;
   GLY.ClientDataSet1.Params.ParamByName('s2').AsString:=Edit2.Text;
  GLY.ClientDataSet1.Params.ParamByName('s3').Value:=ComboBox1.Text;
  GLY.ClientDataSet1.Params.ParamByName('s4').Value:=Edit3.Text;
   GLY.ClientDataSet1.Open;
end;

帮忙看下哪出错了,当我每次添加时都会出以下错误:
Project Project1.exe raised exception class EOLeException with message
'[Microsoft][ODBC SQL Server Driver]字符串数据,右截位'.Process stopped.Use Step or Run to continue程序完全看不出问题
但如过我在edit1里如果写如两个字.然后在打上四个空格这样就可插入了.....很奇怪....请帮我看看

解决方案 »

  1.   

    先定义
    GLY.ClientDataSet1对应 数据库 物理表
    再用
    GLY.ClientDataSet1.Append;
    GLY.ClientDataSet1.Params.ParamByName('s1').AsString:=Edit1.Text;
    ......
    然后
    GLY.ClientDataSet1.ApplyUpdates(0)
      

  2.   

    1-你既然指定了VALUE,那还用SELECT FROM 干什么呢 ?
    你查查INSERT INTO 的语法吧。
    2-或许你的意思是插入完数据后再查询,但在COMMANDTEXT里不能同时执行两个SQL语句呀。
      

  3.   

    sql语句加个分隔的“;”GLY.ClientDataSet1.CommandText:='insert into JSDM(JSDM,XM,XB,ZC) values(:s1,:s2,:s3,:s4); select * from JSDM';