这是数据库插入数据程序:
var
 querystr1:string;
 g_mingcheng:string;
 g_bianhao:integer;
begin
  g_bianhao:=strtoint(edit5.text);
  g_mingcheng:=edit6.text;
  sqlbumen0.Close;
  queryStr1 := 'insert into gonganbumen'+
                         '(g_bianhao,g_mingcheng )'+
                         'values("'+
                          inttostr(g_bianhao) +'","'+
                          g_mingcheng +'")';
运行的时候出现这样的错误:这个g_bianhao:=strtoint(edit5.text)是“is not a valid integer value"为什么?我已经把edit5的内容做转换了?为什么会这样?

解决方案 »

  1.   

    你sql语句有问题哎queryStr1 := 'insert into gonganbumen'+
                             '(g_bianhao,g_mingcheng )'+
                             'values('+
                              inttostr(g_bianhao) +',"'+
                              g_mingcheng +'")';
      

  2.   

    你是不是把g_bianhao的类型转换了两次,
    queryStr1 := 'insert into gonganbumen'+
                             '(g_bianhao,g_mingcheng )'+
                             'values('+
                              g_bianhao +',"'+
                              g_mingcheng +'")';
      

  3.   

    为什么这里不用双引号引住:inttostr(g_bianhao) 啊,该为这样还是原来的错误。
      

  4.   

    queryStr1 := 'insert into gonganbumen'+
                             '(g_bianhao,g_mingcheng )'+
                             'values('+
                              g_bianhao +',"'+
                              g_mingcheng +'")';
    再看
    呵呵
      

  5.   

    在insert语句中这样写是对的,我用单步运行跟踪,是这个g_bianhao:=strtoint(edit5.text)是“is not a valid integer value"有错啊?但不知道为什么?
      

  6.   

    g_bianhao这是一个整形类型,在sql中要转换为字符型啊。这没错啊
      

  7.   

    你直接把g_bianhao设置为string就好了嘛
    还不用转换类型
      

  8.   

    这不行啊,数据库里g_bianhao就是整形啊
      

  9.   

    edit5.text中输入的是数字吗?
    你转换的时候,最好加抛出异常语句
    try
      g_bianhao:=strtoint(edit5.text);
    except
      ShowMessage(输入的不是数字);
      exit;
    end;