这个错误信息是什么意思? 300分(300分)

我最后还是用stored procedure解决的.
 
1. 我这里是通过的.
2. 应该不会死锁
一样,当UPdate,Insert完成后用commit 或Rollbak释放锁后再select.
一个程序多个连接和多个程序同时访问对数据库来说,应该一样.
3. 参与能力低有什么不好?
我们现在还没有用 delphi 开发过项目,正在做准备.我就打算把大部分数据操作
写成存储过程,这样公司新来的技术人员可以不要求懂太多数据库.

某一个query 不prepare当然可以解决问题,但我想查明错误原因,否则,他后面说
不定还有更多的query怎么办?

 
我來給大家說 解決的方法
一、改用ADO 驅動 則無此問題 但會經常超時。
二、改用 其它數據庫 MYSQL 或其它。
三、改用別的語言 但不要用 C++BULID。
四、用后台的存储过程。
五、不要隨隨便便 在 SELECT、UPDATA、INSERT 、DELETE 的execsql;
OPEN、ACTIVE:=TRUE 前 加Prepare;特别是这几个组合,要少加。
这第五点这个方法能减少90%出现的机率。原因是DELPHI运行太快了导致了你数据
库前一个PREPARE没有释放时又产生一个,SQL Server ODBC driver 只允许一
个活动的hstmt,记住这个问题产生的原因是因为DELPHI 运行太快了。太快的东西
,太好的,太优秀的(DELPHI)和不好的东西(SQL)会产生矛盾。
六、这一点很重要,尽量采用专业的服务器+SISC 硬盘+大内存,不要随随便便用一台机器
装一下NT就是服务器了,很多问题正是它引起的(事实上微软让hstmt尽快释放,而是你的
服务器它不行。碰到这个问题时,当你整理一下硬盘,机率少一点,但不久就会现次出现。
哈 哈

 
顶部