求教:VB客户端+SQL2000的问题

longhui666888 2003-09-11 02:39:00
我做了一个客户端,连接2000上的SQL2000,不能同时有两台以上的客户机打开同一条记录
我是这样做的
dim db as connection
dim rs as recordset
set db=new connection
db.connectionTimeout=10
db.connectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist security Info=false;Initial Catalog=hcdb;data Source=hc"
db.open
set rs=new recordset
rs.open "select * from hcTable",hcdb,adOpenStatic,adlockPessimistic
set dataGrid.datasource=rs
请大虾帮着看看哪地方错了
还有就是看SQL的书上尽是介绍在SQL里执行的语法,如果在客户端里应该如何执行这些语句呢?
还有
recordset 后面跟的那些参数都是什么意思呀?
...全文
38 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lihonggen0 2003-09-11
  • 打赏
  • 举报
回复

这样执行sql 语句:

cn.execute "insert into ...."




cn.execute "你的sql语句"
longhui666888 2003-09-11
  • 打赏
  • 举报
回复
:-( 游标的概念我也不懂呀
longhui666888 2003-09-11
  • 打赏
  • 举报
回复
如果要在VB里面执行SQL语句(除SELECT这外的其它语句)该如何弄呢?
为什么SQL书里面只讲如何在“企业管理器”里执行 SQL语句?VB里面不可以吗?
lihonggen0 2003-09-11
  • 打赏
  • 举报
回复
设置游标为客户端游标
longhui666888 2003-09-11
  • 打赏
  • 举报
回复
Rs.CursorLocation = adUseClient
这句在里面的作用是什么?
lihonggen0 2003-09-11
  • 打赏
  • 举报
回复
是SQL数据库里的用户名和密码

adlockoptimistic 使用乐观锁(仅在更新过程中才锁定记录或页面)
adlockpessimistic 使用悲观锁(编辑或更新整个过程中均锁定记录或页面)


关于不能同时访问同一条记录的问题

建议你用事务处理来控制比较好!

longhui666888 2003-09-11
  • 打赏
  • 举报
回复
这个用户名和密码是SQL数据里面的那个吗?
如果locktype属性使用那个乐观锁,是不是就不会出现两台以上机子不能同时访问同一条记录的问题了?
lihonggen0 2003-09-11
  • 打赏
  • 举报
回复
CN.ConnectionString = "Provider=sqloledb;Data Source=服务器名;Initial Catalog=数据库;User Id=用户名;Password=密码;"
lihonggen0 2003-09-11
  • 打赏
  • 举报
回复
象这样:


工程--->引用--->Microsoft ActiveX Data Object 2.x(版本号)

Dim CN As New ADODB.Connection '定义数据库的连接
Dim Rs As New ADODB.Recordset
CN.ConnectionString = "Provider=sqloledb;Data Source=pmserver;Initial Catalog=northwind;User Id=sa;Password=sa;"
CN.Open
Rs.CursorLocation = adUseClient
Rs.Open "select * from employees", CN, adOpenDynamic, adLockOptimistic


Set DataGrid1.DataSource = Rs
lihonggen0 2003-09-11
  • 打赏
  • 举报
回复


cursortype属性用到的常数

常数 含义
adopenforwardonly 提供单向移动游标和只读recordset(默认值)
adopendynamic 提供可滚动游标,可显示其他用户对recordset所做的改动(包括添加新记录)
adopenkeyset 提供可滚动游标,只隐藏其他用户所做的改动,类似于dynaset类型的dao.recordset

adopenstatic 提供一个位于recordset静态拷贝上的可滚动游标,类似于snapshot类型的dao.recordset,但多了可更新特性



locktype属性用到的常数
常数 含义
adlockrecordonly 指定只读访问(默认值)
adlockbatchoptimistic 使用批量更新模式而不是默认的立即更新模式
adlockoptimistic 使用乐观锁(仅在更新过程中才锁定记录或页面)
adlockpessimistic 使用悲观锁(编辑或更新整个过程中均锁定记录或页面)

longhui666888 2003-09-11
  • 打赏
  • 举报
回复
真没面子,我这句抄差了:-P
我做了一个客户端,连接2000上的SQL2000,不能同时有两台以上的客户机打开同一条记录
我是这样做的
dim db as connection
dim rs as recordset
set db=new connection
db.connectionTimeout=10
db.connectionString="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist security Info=false;Initial Catalog=hcdb;data Source=hc"
db.open
set rs=new recordset
rs.open "select * from hcTable",db,adOpenStatic,adlockPessimistic
set dataGrid.datasource=rs
请大虾帮着看看哪地方错了
还有就是看SQL的书上尽是介绍在SQL里执行的语法,如果在客户端里应该如何执行这些语句呢?
还有
recordset 后面跟的那些参数都是什么意思呀?

楼上那位大哥,我知道你这方面行,我是超级菜鸟,能不能给我讲得详细些呀?

lihonggen0 2003-09-11
  • 打赏
  • 举报
回复
rs.Open "select * from hcTable", db, adOpenStatic, adLockPessimistic

1,216

社区成员

发帖
与我相关
我的任务
社区描述
VB 数据库(包含打印,安装,报表)
社区管理员
  • 数据库(包含打印,安装,报表)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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