1. 怎样解决远程数据库的经常断网求答案
CDatabase::SetQueryTimeout();设定查询超时,当sql 语句(包括存储过程)执行超过这个时间时就会出错。这个出错可以用try和catch来捕捉的。你可以估算一下,执行一条sql 语句大约需要多长时间,超过这个时间你可以认为是连接中断了。
中断后你可以再重新建立一个新的连接。
一个事务尽可能的短,否则用户多了有可能会造成数据库中数据表锁死现象
因为我没有做过远程连接,这也仅仅是我的猜测,也不知对不对
2. MFC 如何断网后自动恢复数据库连接,并且继续执行线程,MYSQL
思路是在执行SQL的时候捕获异常,发生异常时,自动重新连接,重试。 ADO代码示例:
void C_Ado::Disconnect()
{
if ( this->m_isConnected )
{
if(this->m_connectionPtr != NULL)
{
if ( this->m_connectionPtr->State )
this->m_connectionPtr->Close();
}
this->m_isConnected = false;
}
}
bool C_Ado::Execute(const char *sql)
{
if ( ! this->m_isConnected )
{
Connect();
}
_CommandPtr pCommand;
try {
pCommand.CreateInstance("ADODB.Command");
pCommand->ActiveConnection = this->m_connectionPtr;
pCommand->CommandType = adCmdText;
pCommand->CommandText = _bstr_t(sql);
pCommand->Execute(NULL, NULL, adCmdText);
}
catch(_com_error e) {
this->Disconnect();
return false;
}
return true;
}
3. 如何修复SQL数据库置疑 修复SQL数据库置疑方法
1、在实际的操作中由于突然断电或者突然断网造成数据库置疑(在企业管理器中数据库后面出现置疑两个字),下面我们通过以下方法来进行修复置疑的数据库。
2、我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQL Server Enterprise Manager里面建立。
3、停掉数据库服务器。
4、将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。
5、启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。
6、设置数据库允许直接操作系统表。此操作可以在SQL Server Enterprise Manager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。
4. 向远程数据库上传信息,如果突然断网,要求在网络恢复时自动从断开处继续上传,可以指点个大致方向吗
你好黑夜丶风,看你用的是什么浏览器了
如果不是ie浏览器 可以找到下载设置 继续下载
ie浏览器 如果是ie11版本 可以继续下载
其他的版本 就需要重新下载了
5. 连接远程数据库 中途断网 要不要重来open
一般断网了数据库连接就断了,程序里面一般用异常处理来处理这类情况就行了,当然你可以捕捉异常,如果是数据库断开的异常,再reopen。
个人认为没必要,即使在事务处理中,数据库未收到提交请求也是不会提交事务的
6. 远程连接SQL Server数据库,执行语句时突然断网,得等15秒才返回错误信息,请问怎么缩短这个时间
你是用客户端远程服务器数据库么? 如果出现这种情况。 你完全可以点击左上角的红色小按钮,取消执行这样就不用等15s了。就在执行按钮的旁边。
如果是用程序访问远程数据库,出现断网,不想等待那么久,就设置一个timeout就好了。
7. 两台异地SQL数据库能不能使数据库时刻同步
所谓时刻同步,就是双机热备,这样的系统对通讯线路的要求很高,你的系统连基本的数据常连都不能保障,双机热备的方案是不现实的.
假设我判断正确,你的系统应该不是特别的复杂,专卖店的数据应该都是些进销存与客户资料等数据,这些数据能够几个小时同步一次也可以满足数据同步的业务要求.
我提供一个折衷的办法,所有的数据库(增/删除/改)操作都保存在一个名字叫数据库同步表的表中一个终端修改了数据,就将这个表中记录传递到另外一个店铺进行同步操作,这样数据就同步.
这种方法的重点是同步机制的确定(各分店数据同步的顺序);
这种方法始终不是操作一个相同的表,会存在对同一数据的重复操作冲突(比如A店的货已经卖光,库存清零,但B店又卖了一批,就库存为负了),解决冲突的办法是保存冲突记录,提高同步频率.
8. mysql数据库 两地 同步 怎么做
可以通过主从备份去实现,推荐看看高可用mysql这本书看看,找找相关资料,难度不到,只要你对性能要求不是太高
9. 断网连接本地数据库问题
你电脑是否是动态分配IP地址?拔掉网线后手动设置一个任意IP地址再试试可否成功
10. 如何修复sql数据库数据不一致
修复sql2000数据库置疑在实际的操作中由于突然断电或者突然断网造成数据库置疑(在企业管理器中数据库后面出现置疑两个字),下面我们通过以下方法来进行修复置疑的数据库。A.我们使用默认方式建立一个供恢复使用的数据库(如test)。可以在SQLServerEnterpriseManager里面建立。B.停掉数据库服务器。C.将刚才生成的数据库的日志文件test_log.ldf删除,用要恢复的数据库mdf文件覆盖刚才生成的数据库数据文件test_data.mdf。D.启动数据库服务器。此时会看到数据库test的状态为“置疑”。这时候不能对此数据库进行任何操作。E.设置数据库允许直接操作系统表。此操作可以在SQLServerEnterpriseManager里面选择数据库服务器,按右键,选择“属性”,在“服务器设置”页面中将“允许对系统目录直接修改”一项选中。也可以使用如下语句来实现。usemastergosp_configure'allowupdates',1goreconfigurewithoverridegoF.设置test为紧急修复模式updatesysdatabasessetstatus=-32768wheredbid=DB_ID('test')此时可以在SQLServerEnterpriseManager里面看到该数据库处于“只读\置疑\脱机\紧急模式”可以看到数据库里面的表,但是仅仅有系统表G.下面执行真正的恢复操作,重建数据库日志文件dbccrebuild_log('test','C:\ProgramFiles\MicrosoftSQLServer\MSSQL\Data\test_log.ldf')执行过程中,如果遇到下列提示信息:服务器:消息5030,级别16,状态1,行1未能排它地锁定数据库以执行该操作。DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系。说明您的其他程序正在使用该数据库,如果刚才您在F步骤中使用SQLServerEnterpriseManager打开了test库的系统表,那么退出SQLServerEnterpriseManager就可以了。正确执行完成的提示应该类似于:警告:数据库'test'的日志已重建。已失去事务的一致性。应运行DBCCCHECKDB以验证物理一致性。将必须重置数据库选项,并且可能需要删除多余的日志文件。DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系。此时打开在SQLServerEnterpriseManager里面会看到数据库的状态为“只供DBO使用”。此时可以访问数据库里面的用户表了。H.验证数据库一致性(可省略)dbcccheckdb('test')一般执行结果如下:CHECKDB发现了0个分配错误和0个一致性错误(在数据库'test'中)。DBCC执行完毕。如果DBCC输出了错误信息,请与系统管理员联系。I.设置数据库为正常状态sp_dboption'test','dbouseonly','false'如果没有出错,那么恭喜,现在就可以正常的使用恢复后的数据库啦。J.最后一步,我们要将步骤E中设置的“允许对系统目录直接修改”一项恢复。因为平时直接操作系统表是一件比较危险的事情。当然,我们可以在SQLServerEnterpriseManager里面恢复,也可以使用如下语句完成sp_configure'allowupdates',0goreconfigurewithoverridego