求救啊,救命啊。

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: 光标操作冲突]
...全文
91 21 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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
  • 打赏
  • 举报
回复
马上试,
楼上的兄弟帮帮忙,
先别下网,
有事可能还要请教。
加载更多回复(1)

34,838

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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