13 个解决方案
#1
拼接插入或更新语句,一次性传到服务器执行.
#2
还可以从服务器获取一个空的recordset,用recordset.add方法添加记录,然后用 update 方法执行.
#3
你在程序里将插入或更新的SQL字符串循环拼接后,然后连接数据库直接一次性执行。
#4
如果是更新,则用记录集将数据下载,然后在程序里更改记录集中的内容,然后执行record的 update 方法.
#5
可以些存储过程拼接字符串 然后在程序中调用。
#6
60行就延迟得厉害了
#7
先在数据集中修改,比如我做过C#的,在DataSet中先进行操作.然后一次性更新到数据库
#8
update tableA set tableA.xx=xx,.....
where id between xx and xx
where id between xx and xx
#9
语句拼接和用记录集一次性操作 哪一种效率更高
#10
一样的
#11
1、从SqlServer考虑,可以用BCP命令,批量导入数据,但BCP只能在本地执行!
2、从代码上,如果是.net开发环境,建议使用【SqlBulkCopy】,批量导入导出,速度可比BCP导入
EXEC master..xp_cmdshell 'BCP PMS.dbo.table1 in c:\table1.txt -c -t";" -r"\n\r" -S"Fred" '
EXEC master..xp_cmdshell 'bcp "testdb.dbo.test" out "C:\123.txt" -c -q -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp testdb.dbo.test in "c:\test1.txt" -F 2 -c -t";" -r"\n" -k -U"sa" -P"sa" '
EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:\currency_format1.fmt -c -T'
2、从代码上,如果是.net开发环境,建议使用【SqlBulkCopy】,批量导入导出,速度可比BCP导入
#12
貌似用记录集操作要高一些,但如果是更新的话,最好是只有你这个客户端在用数据库,否则有那么一点可能会产生脏数据.
#13
搞定了,还有一个问题就是如果网络延迟了,他就直接弹出错误,然后程序就崩溃了 你们一般怎么处理连接超时的?
if(adCmd==adCmdTable)
sRecordset=srecordset;
else
sRecordset="("+srecordset+") DERIVEDTBL";
try
{
rst=m_pConnection->Execute((_bstr_t)srecordset,NULL,adCmd);
}
catch(_com_error&e)
{
this->GetErrors(e);
return false;
}
#1
拼接插入或更新语句,一次性传到服务器执行.
#2
还可以从服务器获取一个空的recordset,用recordset.add方法添加记录,然后用 update 方法执行.
#3
你在程序里将插入或更新的SQL字符串循环拼接后,然后连接数据库直接一次性执行。
#4
如果是更新,则用记录集将数据下载,然后在程序里更改记录集中的内容,然后执行record的 update 方法.
#5
可以些存储过程拼接字符串 然后在程序中调用。
#6
60行就延迟得厉害了
#7
先在数据集中修改,比如我做过C#的,在DataSet中先进行操作.然后一次性更新到数据库
#8
update tableA set tableA.xx=xx,.....
where id between xx and xx
where id between xx and xx
#9
语句拼接和用记录集一次性操作 哪一种效率更高
#10
一样的
#11
1、从SqlServer考虑,可以用BCP命令,批量导入数据,但BCP只能在本地执行!
2、从代码上,如果是.net开发环境,建议使用【SqlBulkCopy】,批量导入导出,速度可比BCP导入
EXEC master..xp_cmdshell 'BCP PMS.dbo.table1 in c:\table1.txt -c -t";" -r"\n\r" -S"Fred" '
EXEC master..xp_cmdshell 'bcp "testdb.dbo.test" out "C:\123.txt" -c -q -U"sa" -P"sa"'
EXEC master..xp_cmdshell 'bcp testdb.dbo.test in "c:\test1.txt" -F 2 -c -t";" -r"\n" -k -U"sa" -P"sa" '
EXEC master..xp_cmdshell 'BCP AdventureWorks.sales.currency format nul -f c:\currency_format1.fmt -c -T'
2、从代码上,如果是.net开发环境,建议使用【SqlBulkCopy】,批量导入导出,速度可比BCP导入
#12
貌似用记录集操作要高一些,但如果是更新的话,最好是只有你这个客户端在用数据库,否则有那么一点可能会产生脏数据.
#13
搞定了,还有一个问题就是如果网络延迟了,他就直接弹出错误,然后程序就崩溃了 你们一般怎么处理连接超时的?
if(adCmd==adCmdTable)
sRecordset=srecordset;
else
sRecordset="("+srecordset+") DERIVEDTBL";
try
{
rst=m_pConnection->Execute((_bstr_t)srecordset,NULL,adCmd);
}
catch(_com_error&e)
{
this->GetErrors(e);
return false;
}