数据库连接问题?

linwdm2002 2004-12-08 10:47:33
如果一个用户在运行此程序,而其他用户也要运行的时候,好久都不出来登陆界面,不知道是什么原因?
...全文
190 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
lsypenghong 2005-01-22
  • 打赏
  • 举报
回复
偶还不会连接数据库
lzheng2001 2004-12-12
  • 打赏
  • 举报
回复
从现在的情况来看,死锁的起源并不是delete 语句引起的, 你可能在其它地方(程序)对表howdo更改了数据而没有commit,当你再执行DELETE FROM howdo WHERE howdo.days < :str;时就会死锁, 建议你搜索一下 "howdo" 这个字眼,你就会发现还有什么地方修改了表的数据
progrose 2004-12-12
  • 打赏
  • 举报
回复
引用: 答了那么多都没说中要点,现在的问题是只能是一个人登陆,那当然是安装数据库选择连接点数或者操作系统访问连接的点数限制问题了!
青锋-SS 2004-12-12
  • 打赏
  • 举报
回复
所谓的"锁"的问题.
linwdm2002 2004-12-11
  • 打赏
  • 举报
回复
还是有问题的,不知道是什么原因的??还是DELETE有问题的,其他的对表的操作就没有问题的,比如说:INSERT,UPDATE等等都没有问题的.
WorldMobile 2004-12-10
  • 打赏
  • 举报
回复
肯定是死锁的问题,还有你的Commit写的不对,SQL不要写在一行上

这样试试
DELETE FROM howdo WHERE howdo.days < :str;
COMMIT;
liks006 2004-12-09
  • 打赏
  • 举报
回复
是否在应用程序做了限定用户连接数呢,或是表进行了锁定了
lzheng2001 2004-12-09
  • 打赏
  • 举报
回复
把语句贴出来看看!
linwdm2002 2004-12-09
  • 打赏
  • 举报
回复
我现在发现一个问题就是:在对表的操作中只有DELETE操作产生鎖表,那个窗口用到DELETE操作就出现鎖表(就是没有反应的),在DELETE中加COMMIT,没有什么效果,不明白是什么原因的,去掉DELETE操作就可以了.
lzheng2001 2004-12-09
  • 打赏
  • 举报
回复
关键是你commit的语句怎么写!!

DELETE FROM howdo WHERE howdo.days < :str;
if sqlca.sqlcode = 0 then
commit;
else
rollback;
end if
这样应该不会有问题的
linwdm2002 2004-12-09
  • 打赏
  • 举报
回复
就是这句:DELETE FROM howdo WHERE howdo.days < :str ;去掉就没有问题了.
maxbookey 2004-12-09
  • 打赏
  • 举报
回复
同感!!!
我的是数据库中无论有多少个用户,都只能是固定的一个人才能登陆,只有把他删除了下一个用户才能登陆,什么原因?
jb99334 2004-12-08
  • 打赏
  • 举报
回复
操作表以后,注意执行commit
zhangdatou 2004-12-08
  • 打赏
  • 举报
回复
好久与永久之争!
linwdm2002 2004-12-08
  • 打赏
  • 举报
回复
好象就是永久不出来一样,反正等了好久都没有出来的,等别人退出了,才出来的.
WorldMobile 2004-12-08
  • 打赏
  • 举报
回复
是好久没出来,还是永久没出来?如果只是好久的话,可能是连接的问题,如果是永久的话,可能是死锁或者程序做了一些限制,如只让程序运行一次等等,你再检查检查
linwdm2002 2004-12-08
  • 打赏
  • 举报
回复
SQLCA.DBMS =ProfileString("gcgl.ini","Database","DBMS"," ")
SQLCA.Database =ProfileString("gcgl.ini","Database","DataBase"," ")
SQLCA.LogID =ProfileString("gcgl.ini","Database","LogID"," ")
SQLCA.LogPass =ProfileString("gcgl.ini","Database","LogPassword"," ")
SQLCA.ServerName =ProfileString("gcgl.ini","Database","ServerName"," ")
SQLCA.UserID =ProfileString("gcgl.ini","Database","UserID"," ")
SQLCA.DBPass =ProfileString("gcgl.ini","Database","DatabasePassword"," ")
SQLCA.Lock =ProfileString("gcgl.ini","Database","Lock"," ")
SQLCA.DbParm =ProfileString("gcgl.ini","Database","DbParm"," ")
SQLCA.AutoCommit =true;
写了之后还是没有什么反应的.
handi 2004-12-08
  • 打赏
  • 举报
回复
set auto commit = true
就应改可以了.
lzheng2001 2004-12-08
  • 打赏
  • 举报
回复
表死锁了! 注意对表操作后执行commit语句
hygougou 2004-12-08
  • 打赏
  • 举报
回复
唉~~`
答了那么多都没说中要点,现在的问题是只能是一个人登陆,那当然是安装数据库选择连接点数或者操作系统访问连接的点数限制问题了!
加载更多回复(8)

752

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧