CVI数据库中数据的更新

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/*-----------------------------数据库中数据的更新------------------------------*/

1.利用SQL语句update

int main()

{

ConnectHandle=DBConnect ("DSN=CVILocal;UID=sa;PWD=123");

ActivateHandle = DBActivateSQL (ConnectHandle, "update 测试表set 测试变量值=3.0 where 测试变量ID=1203 ");

resCode = DBDeactivateSQL (ActivateHandle);

DBDisconnect (ConnectHandle);

return 0;

}

2.DBPutColFloat等函数直接更新

int main()

{

ConnectHandle=DBConnect ("DSN=CVILocal;UID=sa;PWD=123");

ActivateHandle = DBActivateSQL (ConnectHandle, "select * from 测试表where 测试变量ID=1203");

resCode = DBPutColFloat (ActivateHandle, 3, 23.2);

resCode = DBPutRecord (ActivateHandle);

resCode = DBDeactivateSQL (ActivateHandle);

DBDisconnect (ConnectHandle);

return 0;

}

3.用非SQL变量的形式更新数据库中的值

int main()

{

double serNum=13.0;

long serNumLen;

ConnectHandle=DBConnect ("DSN=CVILocal;UID=sa;PWD=123");

ActivateHandle = DBActivateSQL (ConnectHandle, "SELECT * FROM 参数表WHERE 参数ID=2");

resCode = DBBindColDouble (ActivateHandle, 3, &serNum, &serNumLen);

resCode = DBPutRecord (ActivateHandle);

resCode = DBDeactivateSQL (ActivateHandle);

DBDisconnect (ConnectHandle);

return 0;

}

4.DBPutRecord更新

/*-------DBPutRecord 和DBUpdateBatch同时使用才能完成数据更新,DBPutRecord只能完成一个

记录的更新,当在一个循环中调用DBPutRecord时,仅仅是把同一个记录更新了n次------------*/

int main()

{

int i=0;

double serNum=4.0;

long serNumLen;

ConnectHandle=DBConnect ("DSN=CVILocal;UID=sa;PWD=123");

resCode = DBSetAttributeDefault (ConnectHandle, ATTR_DB_LOCK_TYPE,DB_LOCK_BATCH_OPTIMISTIC); ActivateHandle = DBActivateSQL (ConnectHandle, "SELECT * FROM 测试表");

resCode = DBBindColDouble (ActivateHandle, 3, &serNum, &serNumLen);

for (i = 0; i < 10; i++)

{

serNum++;

resCode = DBCreateRecord (ActivateHandle); //若没有这一句,数据库中仅仅第一行的数据被更新为13

resCode = DBPutRecord (ActivateHandle);

}

resCode = DBUpdateBatch (ActivateHandle, DB_AFFECT_ALL);//若没有这一句,数据库中的数据无任何变动

resCode = DBDeactivateSQL (ActivateHandle);

resCode = DBSetAttributeDefault (ConnectHandle, ATTR_DB_LOCK_TYPE,DB_LOCK_OPTIMISTIC);

resCode = DBDisconnect (ConnectHandle);

return 0;

}

5.DBFetchNext、BPutColDouble和DBPutRecord实现数据库数据的批量更新

int main()

{

double a[5]={11.1,22.2,33.3,44.4,55.5};

int i=0;

ConnectHandle=DBConnect ("DSN=CVILocal;UID=sa;PWD=123");

ActivateHandle = DBActivateSQL (ConnectHandle, "select * from 测试表where 测试变量ID>1230 and 测试变量ID<1236");

while(DBFetchNext(ActivateHandle)==0)

{

resCode = DBPutColDouble (ActivateHandle, 3, a[i]);

resCode = DBPutRecord (ActivateHandle);

i++;

}

resCode = DBDeactivateSQL (ActivateHandle);

DBDisconnect (ConnectHandle);

return 0;

}

相关文档
最新文档