导航
  • 主页
  • 基础类
  • 应用实例
  • 新技术前沿

求救啊,救命啊。

zhoutian618 2003-12-26 06:30:01
执行如下SQL:
insert into server.jxc.dbo.recipe(RecipeID, RecipeName)
values (101, '101')

报出如下的错:
服务器: 消息 7343,级别 16,状态 2,行 1
OLE DB 提供程序 'SQLOLEDB' 未能 INSERT INTO 表 '[sany9].[jxc].[dbo].[recipe]'。未知的提供程序错误。
[OLE/DB provider returned message: 光标操作冲突]
...全文
33 点赞 收藏 21
写回复
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
txlicenhe 2003-12-26
还有没有SQL服务器,换另一台试试。
回复
zhoutian618 2003-12-26
txlicenhe(马可)
我早就晕倒了。
回复
txlicenhe 2003-12-26
晕倒。
回复
zhoutian618 2003-12-26
对,
就是
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名(RecipeID, RecipeName)
values(101,'101')
这种语句有问题。
错误如下:
服务器: 消息 7343,级别 16,状态 2,行 1
OLE DB 提供程序 'MSDASQL' 未能 INSERT INTO 表 '[sany99].[jxc].[dbo].[recipe]'。未知的提供程序错误。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]光标选项冲突]
回复
txlicenhe 2003-12-26
用这种方式往别的机器上写:

insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名(RecipeID, RecipeName)
values(101,'101')
回复
zhoutian618 2003-12-26
我从来不用游标的。

我的SQL语句是:
insert into sany99.jxc.dbo.recipe(RecipeID, RecipeName)
values (101, '101')

从别的机器上的数据库往本数据库插入是没有问题,
问题出在本机器往别的机器上插入数据时就有问题。
所以你的
insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
这段SQL是正确的,没有问题。
但是反过来往OPENDATASOURCE所指定的数据表中去插数据时就有问题了。
回复
txlicenhe 2003-12-26
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名(RecipeID, RecipeName)
values(101,'101')

我试了是可以的。
回复
txlicenhe 2003-12-26
insert OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名(RecipeID, RecipeName)
values(101,'101')
回复
txlicenhe 2003-12-26
要不然直接用:
insert 本地库名..表名 select * from OPENDATASOURCE(
'SQLOLEDB',
'Data Source=远程ip;User ID=sa;Password=密码'
).库名.dbo.表名
回复
txlicenhe 2003-12-26
没有用游标吧?

你在SQL中的代码?
回复
zhoutian618 2003-12-26
也是报错:
服务器: 消息 7343,级别 16,状态 2,行 2
OLE DB 提供程序 'MSDASQL' 未能 INSERT INTO 表 '[sany99].[jxc].[dbo].[recipe]'。未知的提供程序错误。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]光标选项冲突]
是一样的错误啊。

难解。
回复
txlicenhe 2003-12-26
光标选项冲突??


你直接用查询分析器执行该SQL语句呢?
回复
zhoutian618 2003-12-26
绝对不会是只读的,因为我的程序里面可以写的,也确实写进去了,
因为事务不提交的情况下,后台查询的时候所以有数据是锁定的。。
是可以读写的。
连接也是可写的。

回复
txlicenhe 2003-12-26
你是不是在前台的记录集打开方式为只读啊?
回复
zhoutian618 2003-12-26
兄弟,居然还这样:
SET ANSI_NULLS ON
GO

insert into sany99.jxc.dbo.recipe(RecipeID, RecipeName)
values (101, '101')

SET ANSI_NULLS OFF
GO

服务器: 消息 7343,级别 16,状态 2,行 2
OLE DB 提供程序 'MSDASQL' 未能 INSERT INTO 表 '[sany99].[jxc].[dbo].[recipe]'。未知的提供程序错误。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]光标选项冲突]
回复
txlicenhe 2003-12-26
try:
SET ANSI_NULLS ON
GO

...(你的代码)

SET ANSI_NULLS OFF
GO

回复
zhoutian618 2003-12-26
服务器: 消息 7343,级别 16,状态 2,行 1
OLE DB 提供程序 'MSDASQL' 未能 INSERT INTO 表 '[sany99].[jxc].[dbo].[recipe]'。未知的提供程序错误。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]光标选项冲突]

如果用DELPHI前台插入数据的情况下,
数据库事务提交后,
数据仍然不可读写,
一定要前台的程序全部退出才正常。

我还第一次碰到这种事情!
回复
zhoutian618 2003-12-26
TO txlicenhe(马可)
执行select * from sany9.jxc.dbo.recipe是正确的
执行insert into sany99.jxc.dbo.recipe(RecipeID, RecipeName)
values (101, '101')出错:
服务器: 消息 7343,级别 16,状态 2,行 1
OLE DB 提供程序 'MSDASQL' 未能 INSERT INTO 表 '[sany99].[jxc].[dbo].[recipe]'。未知的提供程序错误。
[OLE/DB provider returned message: [Microsoft][ODBC SQL Server Driver]光标选项冲突]
回复
erigido 2003-12-26
学习
回复
zhoutian618 2003-12-26
马上试,
楼上的兄弟帮帮忙,
先别下网,
有事可能还要请教。
回复
发动态
发帖子
MS-SQL Server
创建于2007-09-28

3.2w+

社区成员

MS-SQL Server相关内容讨论专区
申请成为版主
社区公告
暂无公告