不知错误在那里(100分)

  • 主题发起人 主题发起人 wyw1
  • 开始时间 开始时间
W

wyw1

Unregistered / Unconfirmed
GUEST, unregistred user!
我在开发一个c/s型的项目,某几台机器作为终端,另一台机器作为服务器,
终端向服务器送包,服务器根据不同的包对数据库做不同的处理
但是,在运行时,有时会出错,一般时非法访问等,而且出错好象时随机的
我不知错在什么地方,中断跟踪却有跟不到,请大家告诉我怎么才能将错误
找出来
 
多线程,未同步?
 
客户端与服务器的协议及访问方式!
 
多线程与多进程的区别:
多进程是独立数据区,多线程是共享数据区。
使用多线程需要数据同步或局部数据。
详细请看PThreas编程手册
 
数据库是否以共享方式打开??
 
是用socket作的?
 
我是用socket做的
有一个公共的连表,主线程负责接受包,并加到连表上
子线程负责处理连表,其中主要的工作是查库并修改库
我用的是table而不是sql
 
当一个用户编辑一个数值时,该值应锁定,
不然当有多个用户同时编辑一个数值时(A 将值value 改为1,B同时想将值value 改为2)
就会有错误
 
多线程时用table不好,最好sql,
TQuery automatically access a subset of rows and columns in its underlying table(s), rather than always returning all rows and columns.
另外,还和你使用什么数据库有关,bde对有些本地数据库(如Access)的多线程访问是不大理想的。
 
我访问的是远程sybass数据库
 
1.注意ttable、tquery的session名要唯一
2.尽量用tquery
 
你是用通讯包的方式吗?我觉得数据越界的可能性比较大!
对数据访问啊等应该用try...except...隔离开!
 
多人接受答案了。
 
后退
顶部