Chinaunix首页 | 论坛 | 博客
  • 博客访问: 211708
  • 博文数量: 39
  • 博客积分: 420
  • 博客等级: 下士
  • 技术积分: 457
  • 用 户 组: 普通用户
  • 注册时间: 2010-06-01 10:22
文章分类

全部博文(39)

文章存档

2015年(15)

2014年(11)

2013年(1)

2012年(2)

2011年(1)

2010年(9)

我的朋友

分类: C/C++

2014-10-24 15:12:30

最近在vc6.0使用ODBC读取数据库时,使用TRY...CATCH_ALL捕捉到的异常为:常见错误:不能创建文件缓冲区
微软的给出的原因为:
ODBC 游标库生成供自己使用的临时文件。若要确保将临时文件的名称都是唯一的 32 位 ODBC 游标库生成包括一个十六进制数字的临时文件名称。该数将增加每次生成新的文件名。下面是文件名的 genrated 由游标库,用于其临时文件的示例: 
CTT1111.TMP
CTT1112.TMP
CTT1113.TMP 
嵌入在 $ 文件名中的十六进制数从 FFFF 环绕为 0,会生成该错误: 
CTTFFFD.TMP
CTTFFFE.TMP
CTTFFFF.TMP
CTT0.TMP <--此临时文件名将导致该错误

解决方案:
若要避免该错误,创建一个名为 CTT0.TMP 的文件并将其放置在游标库用来生成的临时文件目录中。  当前的工作目录,用 32 位游标库中创建临时文件。游标库将看到该名称与现有文件并跳过它将在下一个文件名 (CTT1.TMP)。 

因此要在系统中删除这些.TMP文件
在DOS窗口下执行:del /f /s /q %systemdrive%\*.tmp
删除之后即可成功执行。


清理系统临时文件脚本,主意该文件没经过测试,请谨慎执行clear_system_tmp_file.rar
阅读(4402) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~