sql

update room set state=入住 where num=101在执行过程中出现列名“入住”无效,
但同样的语句在sql的查询分析器中只在入住上加单引号就可以对数据操作的啊,不知怎么回事。谁能告诉我啊,字段state我是设为text型的!

解决方案 »

  1.   

    在Delphi中也要加但引号的阿
    sSQL := 'update room set state=''入住'' where num=101'
    在字符串中两个但引号表示实际的一个单引号
      

  2.   

    知道了,谢谢了。还有在SQL中怎么样把text转换成int型的啊?我是在sql中num设为int的,
    但我想把一个text型的数据值给num, 怎么转换啊?是什么函数啊?
      

  3.   

    不用转的,直接就可以用了。adoquery.sql.add('update room set state=''入住'' where num=:pama');
    adoquery.parameters['pama'].value := num;
      

  4.   

    不过要保证 num 都是数字
      

  5.   

    好像还是不行啊,我是把值放在combobox中的,然后再给num的,用楼上的方法好像不大行啊?我是先定义个int变量n,然后再把combobox中的值类型转换后给n,然后在sql语句中把n的值给num,但它说列名n无效,怎么回事啊?