请问,我用TQUERY操作SQLSERVER,为什么在DBGRIED中插入或者更新数据后,一刷新就出错(但记录已写入数据库中)。
   EXECPROC和open为什么用时会不一样,我用EXECPROC来执行存储过程会出错
    但用OPEN就不会,SQL为:"select * from da_rs"

解决方案 »

  1.   

    执行返回结果的用open(如,select),后台处理的用execproc(如insert)
      

  2.   

    活动的结果集
    默认情况下, T Q u e r y返回的结果集是只读的。如果希望返回的结果集可以修改,就要把
    T Q u e r y. R e q u e s t L i v e属性设为Tr u e。但在设置该属性之前,要注意下列限制。
    对于d B A S E或P a r a d o x表来说,有如下限制:
    • 使用本地S Q L语法(相关信息在在线帮助中提供)。
    • 只使用一个表。
    • SQL语句中不能使用ORDER BY子句。
    • SQL语句中不能使用统计函数,如S U M或AV G。
    • SQL语句中不能使用计算字段。
    • SQL语句的W H E R E子句中只能包含数值型的字段。
    对于采用直通S Q L语句访问服务器数据库表的查询,有如下限制:
    • 只能使用一个数据库表。
    • SQL语句中不能使用ORDER BY子句。
    • SQL语句中不能使用统计函数,如S U M或AV G。
    要判断查询结果是否可以修改,可以检查T Q u e r y的C a n M o d i f y属性。
      

  3.   

    使用tquery可以执行两种查询:一种是返回结果集的,另一种是不返回结果集的。对于返回结果
    集的查询,应当调用tquery.open( )方法。而对不返回结果集的查询,则使用tquery.execsql( )方法。