更新问题 testid、engineid、guidaoid、pointid这些字段的数据类型都是什么,数值型?还是字符型? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 中断代码,调试出的SQL语句,在查询分析器中能否执行成功? --如果你的字段都是字符型,没有问题,测试如下:create table #t ( testid varchar(100), engineid varchar(100), guidaoid varchar(100), pointid varchar(100), testbay varchar(100), testsupervisor varchar(100), testtype varchar(100), groupid as (testid+engineid+guidaoid+pointid) )insert into #t(testid,engineid,guidaoid,pointid,testbay,testsupervisor,testtype) values ('2','12','1','ZHSH','2','2','2') select * from #tdrop table #t 问题大概不在Query本身, 而是出在ADO上吧?检查一下你的Connection Object, Command Object正常不正常, 这些东东稍微写得不对,就执行不了QUERY了.下面是一个sample, 你对照着看看吧, 也许你用的不是msado15.dll.#import "C:\Program Files\Common Files\System\ado\msado15.dll" \ rename( "EOF", "adoEOF" ) ... _variant_t vtEmpty (DISP_E_PARAMNOTFOUND, VT_ERROR); _variant_t vtEmpty2(DISP_E_PARAMNOTFOUND, VT_ERROR); ... ADODB::_ConnectionPtr Conn1; ADODB::_CommandPtr Cmd1; ADODB::_ParameterPtr Param1; ADODB::_RecordsetPtr Rs1; // Trap any error/exception. try { // Create and Open Connection Object. Conn1.CreateInstance( __uuidof( ADODB::Connection ) ); Conn1->ConnectionString = _bstr_t(L"DSN=Biblio;UID=adimin;PWD=;"); Conn1->Open( _bstr_t(L""), _bstr_t(L""), _bstr_t(L""), -1 ); // Create Command Object. Cmd1.CreateInstance( __uuidof( ADODB::Command ) ); Cmd1->ActiveConnection = Conn1; Cmd1->CommandText = _bstr_t(L"SELECT * FROM Authors " L"WHERE Au_ID < ?"); // Create Parameter Object. Param1 = Cmd1->CreateParameter( _bstr_t(L""), ADODB::adInteger, ADODB::adParamInput, -1, _variant_t( (long) 5) ); Param1->Value = _variant_t( (long) 5 ); Cmd1->Parameters->Append( Param1 ); // Open Recordset Object. Rs1 = Cmd1->Execute( &vtEmpty, &vtEmpty2, ADODB::adCmdText ); } catch( CException *e ) { e->Delete(); } catch(...) { } 字符型,但是groupid是关键字,为什么分析查看器中不写关键字也行。而vc++使用Ado更新时就不行了呢。把groupid的关键字属性去掉就可以更新了。 我在沈阳,用网通线。访问csdn太慢了 微软最新的ADO.Net更新后台时,也必须有关键字字段,否则提示错误。 wangtiecheng ,那我该怎么办啊? 如果你的testid、engineid、guidaoid、pointid 字段都不允许为空,可以以此4个字段做关键字。 testid、engineid、guidaoid、pointid 不能为空,但都是可重复的。不能作关键字, SQL 2008 删除登录记录 复制 distribution 表的结构 sql语句求助??? 请教写一个SQL语句的写法,实现一种效果。 这个查询语句怎么写 数据库表的建法 简单问题: 行列转换后运算的问题?求一存储过程,在线等........... 系列问答,多答多给分呀 如何在做了mirroring的数据上进行事务日志收穷乡僻壤 帮个忙写个SQL命令 一个表的某几个列的数据提取
(
testid varchar(100),
engineid varchar(100),
guidaoid varchar(100),
pointid varchar(100),
testbay varchar(100),
testsupervisor varchar(100),
testtype varchar(100),
groupid as (testid+engineid+guidaoid+pointid)
)insert into #t(testid,engineid,guidaoid,pointid,testbay,testsupervisor,testtype)
values ('2','12','1','ZHSH','2','2','2') select * from #tdrop table #t
下面是一个sample, 你对照着看看吧, 也许你用的不是msado15.dll.#import "C:\Program Files\Common Files\System\ado\msado15.dll" \
rename( "EOF", "adoEOF" )
...
_variant_t vtEmpty (DISP_E_PARAMNOTFOUND, VT_ERROR);
_variant_t vtEmpty2(DISP_E_PARAMNOTFOUND, VT_ERROR);
...
ADODB::_ConnectionPtr Conn1;
ADODB::_CommandPtr Cmd1;
ADODB::_ParameterPtr Param1;
ADODB::_RecordsetPtr Rs1; // Trap any error/exception.
try
{
// Create and Open Connection Object.
Conn1.CreateInstance( __uuidof( ADODB::Connection ) );
Conn1->ConnectionString =
_bstr_t(L"DSN=Biblio;UID=adimin;PWD=;");
Conn1->Open( _bstr_t(L""), _bstr_t(L""), _bstr_t(L""), -1 ); // Create Command Object.
Cmd1.CreateInstance( __uuidof( ADODB::Command ) );
Cmd1->ActiveConnection = Conn1;
Cmd1->CommandText = _bstr_t(L"SELECT * FROM Authors "
L"WHERE Au_ID < ?"); // Create Parameter Object.
Param1 = Cmd1->CreateParameter( _bstr_t(L""),
ADODB::adInteger,
ADODB::adParamInput,
-1,
_variant_t( (long) 5) );
Param1->Value = _variant_t( (long) 5 );
Cmd1->Parameters->Append( Param1 ); // Open Recordset Object.
Rs1 = Cmd1->Execute( &vtEmpty, &vtEmpty2, ADODB::adCmdText ); } catch( CException *e ) { e->Delete(); }
catch(...) { }
为什么分析查看器中不写关键字也行。而
vc++使用Ado更新时就不行了呢。把groupid的关键字属性去掉就可以更新了。