首先,请先删除Windows 98SE, 98SE不适合开发  应使用Win95(delphi3)Win98(Delphi4,5)或WINNT
其次,如果需要汉字在Delphi下显示不出问题,请使用delphi 5.0 或delphi 4.0
另外注意,S3显示卡与Delphi的兼容性不好,Delphi 3.0与98的兼容性不好。全部解决了两个问题后,你的问题就基本解决了。

解决方案 »

  1.   

    redpower:
        请问,S3的显卡包括SAVAGE 4吗?
      

  2.   

    当然包括,但是并不是全不能用,有些卡花屏,有些卡在256色下不能启动Delphi等等,有的则完全正常,比如我现在用的S3 64v2
      

  3.   

    讨论的好象有些跑题......
    我想不应该是操作系统或者硬件的问题,因为同事的机器配置和我一样,他就没有什么问题。
    顺便说一句,我的显卡是Winbond9775的,很老,也没有什么名气,不过兼容性好象并没有什么问题
      

  4.   

    1.可能有进程死在服务器端了
    2。你是不是调用了TQUERY的post方法
    3。改一下控件的font的charset属性
      

  5.   

    Delphi的BDE对数据非常敏感,稍有不慎就会出错,尽量用ODBC吧,如果数据敏感控件一直出错就把表Drop,然后重新Create,我没更好的办法,以为我也是这样的。一些代码能运行一段时间,然后就出错,反复检查NoProblem,把表干掉,OK.GoodLuck.
      

  6.   

    1。"couldn't perform the edit because another user changed the record"
    我想你在表上建立了update的触发器,这个触发器修改了这个记录的某个字段。这个时候Client端就不能再对它进行修改了。除非你重新刷新Client的数据集。2。Dataset not in edit mode"
    你需要在适当的时候进行数据集的Edit()调用。4。在DBEdit控件的OnExit事件中调用Post()方法。
      

  7.   

    第四个问题我已经解决,问题出在我在OnExit事件中进行了一次数据合法性校验,由于这几个DBEdit连的都是Float型的域,就用了Strtofloat(DBEdit.text)函数,结果导致数据丢失(不知道什么原因),现改为对应的域field.value:=Strtofloat(DBEdit.text),结果就正常了
      

  8.   

    不要用ODBC,它过滤了许多SQL好的方法。BDE最近版本(5。10)没什么问题。(可以下载一个)1。发生"couldn't perform the edit because another user changed the record"的错误,我也遇到过,但不经常发生。你可以把你的有关数据库的控件重建一遍,试一试。2。不知道你用QUERY作DBGRID的数据集时是用的哪种方法。应该把QUERY的requestlive打开就可以了。如果是用updatesql不应该出这种提示。
    这种异常应发生在Query.post时,你可以再这之前把query的状态改为EDIT.3。乱码问题,可能是两种原因。不知道你写的程序是什么模式(c/s还是三层数据库),下面的意见你参考一下
    1)。如果你的程序是在win98下编译的,拿到NT上运行就会产生乱码。因此你最好在执行平台上再编译一遍。
    2)。在BDE中有一项设置LangDriver是关于语言代码选项的。你可以设置一个,好象一般选
    paradox china 936(也可根据不同数据库设置)
    另:老兄,干吗还不升级!!!!!!!!!!
      

  9.   

    1.每次注意close或refresh;
    2.将query的requestlive属性设为true;
      

  10.   

    不要用ODBC,它过滤了许多SQL好的方法。BDE最近版本(5。10)没什么问题。(可以下载一个)1。发生"couldn't perform the edit because another user changed the record"的错误,我也遇到过,但不经常发生。你可以把你的有关数据库的控件重建一遍,试一试。2。不知道你用QUERY作DBGRID的数据集时是用的哪种方法。应该把QUERY的requestlive打开就可以了。如果是用updatesql不应该出这种提示。
    这种异常应发生在Query.post时,你可以再这之前把query的状态改为EDIT.3。乱码问题,可能是两种原因。不知道你写的程序是什么模式(c/s还是三层数据库),下面的意见你参考一下
    1)。如果你的程序是在win98下编译的,拿到NT上运行就会产生乱码。因此你最好在执行平台上再编译一遍。
    2)。在BDE中有一项设置LangDriver是关于语言代码选项的。你可以设置一个,好象一般选
    paradox china 936(也可根据不同数据库设置)
    另:老兄,干吗还不升级!!!!!!!!!!
      

  11.   

    1。"couldn't perform the edit because another user changed the record"
    我想你在表上建立了update的触发器,这个触发器修改了这个记录的某个字段。这个时候Client端就不能再对它进行修改了。除非你重新刷新Client的数据集。2。"Dataset not in edit mode"
    你需要在适当的时候进行数据集的Edit()调用, 比如数据集的Scroll事件。4。在DBEdit控件的OnExit事件中调用Post()方法。
      

  12.   

    1。"couldn't perform the edit because another user changed the record"
    我想你在表上建立了update的触发器,这个触发器修改了这个记录的某个字段。这个时候Client端就不能再对它进行修改了。除非你重新刷新Client的数据集。2。"Dataset not in edit mode"
    你需要在适当的时候进行数据集的Edit()调用, 比如数据集的Scroll事件。4。在DBEdit控件的OnExit事件中调用Post()方法。
      

  13.   

    1。"couldn't perform the edit because another user changed the record"
    我想你在表上建立了update的触发器,这个触发器修改了这个记录的某个字段。这个时候Client端就不能再对它进行修改了。除非你重新刷新Client的数据集。2。"Dataset not in edit mode"
    你需要在适当的时候进行数据集的Edit()调用, 比如数据集的Scroll事件。4。在DBEdit控件的OnExit事件中调用Post()方法。
      

  14.   

    1。"couldn't perform the edit because another user changed the record"
    我想你在表上建立了update的触发器,这个触发器修改了这个记录的某个字段。这个时候Client端就不能再对它进行修改了。除非你重新刷新Client的数据集。2。"Dataset not in edit mode"
    你需要在适当的时候进行数据集的Edit()调用, 比如数据集的Scroll事件。4。在DBEdit控件的OnExit事件中调用Post()方法。
      

  15.   

    1。"couldn't perform the edit because another user changed the record"
    我想你在表上建立了update的触发器,这个触发器修改了这个记录的某个字段。这个时候Client端就不能再对它进行修改了。除非你重新刷新Client的数据集。2。"Dataset not in edit mode"
    你需要在适当的时候进行数据集的Edit()调用, 比如数据集的Scroll事件。4。在DBEdit控件的OnExit事件中调用Post()方法。
      

  16.   

        第二个问题已经解决, 虽然不是按照大家的指点去做的,但还是要谢谢大家。
        我的做法如下(开发环境Win98SE+Delphi3+SQL Server6.5):
    控件:DataSource1: TDataSource;
         Query1: TQuery;
         DBGrid: TDBGrid;
    属性设置:Query1的CachedUpdated设为True,RequestLive设为True;
             DataSource1的AutoEdit设为True;
             DBGrid的Options的dgEditing设为False;//不允许DBGrid进行编辑操作
             其余为默认值;
    这样子使得使得Query1始终处于编辑状态,但是DBGrid不能编辑,看起来还是和Query的浏览状态相同。
        在要进行增加或者修改操作时,再把DBGrid的Options的dgEditing设为True;即允许DBGrid进行编辑,这样子就可以一次编辑操作同时修改多条记录,而且在焦点跳转到别的记录时不会自动Post。
      

  17.   

    我没有用过delphi3,我在用ODBC配置数据源的时候其中有一个关于字符串转换的选项,如果选中
    它,就会出现怪字符,如果取消该选项就正常了!
    这是我ado+delphi5连接sql6.5时出现的问题,也许对你有帮助!
      

  18.   

    1。你的问题我碰到过多次,是程序本身的问题,你可能用了cacheupdate,但提交后没有把缓存清空,可以在applyupdates提交后用cancelupdate或commitupdates方法清缓存。
    2。把query的requestalive设为true,更改数据前要调用edit;
    3.可能是你机器或BDE配置有关。
    4。你可能把数据字段设为readonly=true;