现在我已经只是使用代码连接上了MS SQL.
我写了如下代码:
ador:=createoleobject('adodb.recordset'); //创建了记录集ador
ador.open('select * from tablename where id="001"',adoc,adopenkeyset,adlockpessimistic); //从数据表取得数据,adoc是创建adodb.connection.
但现在有个问题:
运行程序时报错,说"列名001无效",把ID的值001随便换成什么值比如008,就报错"列名008无效".
请问各位高手,这是为什么呀,是不是ador.open(strcommand,activeconnection,intcursortype,intlocktype,intcommandtype)这个语法写错了?
另外还有个小问题,VB里创建了ADODB.CONNECTION和ADODB.RECORDSET后,当输入那个点之后电脑会自动弹出所具有的属性、方法,为什么DELPHI中创建后输入点之后不会自动弹出所具有的属性、方法?
谢谢大家解决我的疑问。
9 个解决方案
#1
Delphi都可以,你说的列名无效,是数据库不存在那一列。至于所有的属性,方法你点查看变量值的窗口的那个Inspect就可以看到了。
#2
楼上的兄弟,我数据库里明明有ID这一列呀.
我还试过这样:ador.open('select * from tablename ,adoc,adopenkeyset,adlockpessimistic);
不带条件的直接查询,这样也不行
我还试过这样:ador.open('select * from tablename ,adoc,adopenkeyset,adlockpessimistic);
不带条件的直接查询,这样也不行
#3
你怎么不用ado组件呢?
#4
补充说明下:
我这样写ador.open('select * from tablename,adoc,adopenkeyset,adlockpessimistic,adcmdtext);
报错提示是"未申报的标识ADOPENKEYSET"
adopenkeyset,adlockpessimistic,adcmdtext这三个参数都会提示是未申报的标识.
我要是这样写ador.open('select * from tablename,adoc,1,2,0001); 程序就可以运行,但运行中报错,提示"invalid variant operation",是非法的变量操作的意思吧.
郁闷..................
我这样写ador.open('select * from tablename,adoc,adopenkeyset,adlockpessimistic,adcmdtext);
报错提示是"未申报的标识ADOPENKEYSET"
adopenkeyset,adlockpessimistic,adcmdtext这三个参数都会提示是未申报的标识.
我要是这样写ador.open('select * from tablename,adoc,1,2,0001); 程序就可以运行,但运行中报错,提示"invalid variant operation",是非法的变量操作的意思吧.
郁闷..................
#5
哪里有相关adodb的介绍呢?
#6
接分先!
#7
因为TADODataset对6万条记录的循环执行Next要1分钟,而用这个不到1秒钟
#8
ID字段是什么类型?
#9
ador:=createoleobject('adodb.recordset');
ador.open('select * from tablename where id=''001''',adoc,adopenkeyset,adlockpessimistic);
#1
Delphi都可以,你说的列名无效,是数据库不存在那一列。至于所有的属性,方法你点查看变量值的窗口的那个Inspect就可以看到了。
#2
楼上的兄弟,我数据库里明明有ID这一列呀.
我还试过这样:ador.open('select * from tablename ,adoc,adopenkeyset,adlockpessimistic);
不带条件的直接查询,这样也不行
我还试过这样:ador.open('select * from tablename ,adoc,adopenkeyset,adlockpessimistic);
不带条件的直接查询,这样也不行
#3
你怎么不用ado组件呢?
#4
补充说明下:
我这样写ador.open('select * from tablename,adoc,adopenkeyset,adlockpessimistic,adcmdtext);
报错提示是"未申报的标识ADOPENKEYSET"
adopenkeyset,adlockpessimistic,adcmdtext这三个参数都会提示是未申报的标识.
我要是这样写ador.open('select * from tablename,adoc,1,2,0001); 程序就可以运行,但运行中报错,提示"invalid variant operation",是非法的变量操作的意思吧.
郁闷..................
我这样写ador.open('select * from tablename,adoc,adopenkeyset,adlockpessimistic,adcmdtext);
报错提示是"未申报的标识ADOPENKEYSET"
adopenkeyset,adlockpessimistic,adcmdtext这三个参数都会提示是未申报的标识.
我要是这样写ador.open('select * from tablename,adoc,1,2,0001); 程序就可以运行,但运行中报错,提示"invalid variant operation",是非法的变量操作的意思吧.
郁闷..................
#5
哪里有相关adodb的介绍呢?
#6
接分先!
#7
因为TADODataset对6万条记录的循环执行Next要1分钟,而用这个不到1秒钟
#8
ID字段是什么类型?
#9
ador:=createoleobject('adodb.recordset');
ador.open('select * from tablename where id=''001''',adoc,adopenkeyset,adlockpessimistic);