我在在用INSERT 语句时 报错。
数据库是SYBASE 定义一个字段为NUMBIC类型的。我在TEXT1的框内输入2003。12 时,
用 SQL INSERT时报错。说是数据类型错误!叫我用CONVERT,可我不会用。我用floattostr 
出错。
在用SQL  1、 进行数据操作时(插入、修改、更新)会出现死琐。有建议用NOLOCK参数,怎么
用啊?   2、用事物控制到底好不好啊
在线等待[   :(]

解决方案 »

  1.   

    NUMERIC 是数值型,输入的数据不能转换为数值型,所以报错。(建议你假如不做数值计算的话,用VarChar类型)
      

  2.   

    //这个'2003。12 '是错误的,应该是'2003.12'。
    //
    var ff: Float;
    try
      ff := StrToFloat(Edit1.Text);
    except
      ShowMessage('不能转换成数值!');
      Exit;
    end;  
    with Query do
    begin
      Close;
      Sql.Clear;
      Sql.Text := 'INSERT INTO TableName(Col1) VALUES(:Col1)';
      ParamByName('Col1').AsFloat := ff;
      ExecSQL;  
    end;
      

  3.   

    //
    var ff: Float;
    try
      ff := StrToFloat(Edit1.Text);
    except
      ShowMessage('不能转换成数值!');
      Exit;
    end;  
    with Query do
    begin
      Close;
      Sql.Clear;
      Sql.Text := 'INSERT INTO TableName(Col1) VALUES('+Edit1.Text+')';
      ExecSQL;  
    end;//
    因为添加更新是要修改数据库的,所以系统会自动加锁。
    你select的时候可以不加锁
    select * from tablename(nolock)
     where ....