我做一个生产系统,产品生产时按工艺流程,依次经过多个站位,每个站位运行完成时都向服务器端的同一个数据库表写入相关数据,后一站位要从数据库表中读取到前一站位已经完成的信息才能继续做。
起初,每个站位都先双击exe打开应用程序,打开程序界面时我就连接了数据库,现在问题是,某个站位插入了一条记录后,我怎么更新,其他站位都不能读到这条记录,除非把程序关闭了再打开,或者每个站位的程序不先连接数据库,而是每次点击程序界面上的按钮实际工作时才连接数据库,然后运行结束时关闭数据库,这种方法太憋足,效率也低。这个更新该怎么写?求各位帮帮忙了,谢谢!没分了,给不了多少,请包涵。
起初,每个站位都先双击exe打开应用程序,打开程序界面时我就连接了数据库,现在问题是,某个站位插入了一条记录后,我怎么更新,其他站位都不能读到这条记录,除非把程序关闭了再打开,或者每个站位的程序不先连接数据库,而是每次点击程序界面上的按钮实际工作时才连接数据库,然后运行结束时关闭数据库,这种方法太憋足,效率也低。这个更新该怎么写?求各位帮帮忙了,谢谢!没分了,给不了多少,请包涵。
两个方面好好查查看。
在我的实现里,只在打开表时用到一次SQL语言(SELECT * FROM %s),其他地方全用ADO(MoveFirst、MoveLast、AddNew、PutCollect、GetCollect、Update...),这种写法是不是效率很差?你提到的问题,必须通过代码实现还是也可在企业管理器中设置实现?谢谢!
第一站位AddNew插入一行记录后,它自己是可以看到的,GetRecordCount会增加,用企业管理器打开表查看也是有的,同时,其他站位的程序如果是在第一站位执行插入记录操作之后启动的,也是可以看到这条记录的。问题是,如果各个站位程序都先打开了界面(同时会连接数据库),这时当第一站位插入记录时,其他站位的程序在不重启的情况下是检测不到的,除非其他站位关闭程序然后重新打开程序。
我是希望各个站位打开程序界面时只连接一次数据库,而后程序处于就绪状态,做产品时点击程序界面的运行按钮运行即可,不再每运行一次就连接--关闭一次数据库。如果不能实现,那只能用这种办法了。
“其他人刷新下数据库连接”,指断开并重新连接数据库吗?还有我目前都用ADO,是不是用SQL做一下Update可以有效?
谢谢!
1.各客户端定时主动查询前一步是否完成。(这个也不是用打开的ADO连接能做到的,必须重新连接,查询)
2.由服务器端主动推送完成信息给各客户端,各客户端接收消息后进行相应的操作。
1、能ping成功对方IP;
2、netstat -a,显示列表里没看到有1433 LISTENING的信息,看到有一行(它的上一行是1432端口的信息)是这样的:TCP,ms-sql-m,TIME_WAIT;
3、但是telnet 对方IP:1433却能成功。
有知道的,帮忙说下。
谢谢!
sql server为数据库服务器,通过在客户端发sql命令到服务器,服务器再将执行结果返回到客户端,如果一次应将数据全部取到客户端,在客户端对全部数据进行操作,再提交数据,多用户操作时难以同步,效率也低.查询写一专门查询上一站位是否完成的查询,如查询较复杂,可做成存储过程.每次执行存储过程
再问个问题,服务器端能否开启多个SQL Server服务?多个SQL Server服务是否就是多个实例的概念?我发现新建组可以,但是注册新服务时就无法找到本机(因为本机已经作为默认实例的服务器了)。如果想跑多个,是要找来安装盘在重新安装的过程中设置,还是只要对现行已安装好的进行一下配置就能实现?如果要重装才行就算了,产线的服务器我也不能随便弄。