Z-blog錯誤原因:未知錯誤ID:-2147467259

2012-5-2 10:41:40 | tags | views

        今天更新公司的局域網管理軟件--網路崗技術博客,發表新文章時,提交后Zblog出現如下錯誤提示。插個題外話,雖說我建了個自己的二級域名網絡推廣博客,但平時工作還是比較忙,很少有時間來更新自己的博客,主要就是把平時工作中遇到的一些問題及解決方法找到比較好的內容了,轉貼更新到這個博客上,心里還真感覺有些不好受,看到其它很多朋友天天更新自己的博客,他們的博客人氣越來越高,訪問量越來越大,自己也該努力想辦法來解決此問題了。

錯誤原因:未知錯誤

ID:-2147467259

摘要:
007~ASP 0107~堆棧溢出~處理中的數據超過允許的極限。

我從網上搜集查到了一些解決辦法,現在把可以有效解決該問題的一些方法貼出來與大家一起分享。

關鍵字描述:錯誤 未知 原因 權限 數據庫

一個最近很多人都碰到一個問題:在索引重建的時候出現了"操作必須使用一個可更新的查詢" 錯誤原因:未知錯誤ID:-2147467259。
摘要:
操作必須使用一個可更新的查詢。
Microsoft JET Database Engine

這個問題咋么解決呢?

出錯提示:
操作必須使用一個可更新的查詢。

win2k win2003 系統
問題應該是服務器數據庫目錄的寫入權限沒有設置好。
數據庫目錄 屬性 安全 EVERYONE ……給他寫入權限就OK了。


winXP系統
XP操作系統安裝好,文件夾選項里面默認使用簡單共享(推薦),把這個選項去掉,
再在文件夾上右鍵點擊,就會出現安全這個選項卡,
原來默認的沒有,然后在安全選項卡里面可以設置用戶的寫入權限了
右擊數據庫>安全>everyone>將需要的勾上或者給匿名用戶帳號(IUSR_MACHINE)對該數據庫文件的獨寫權限。
--------------------------------------------------------------
錯誤信息:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'
[Microsoft][ODBC Microsoft Access 97 Driver] Operation must use an
updateable query.

原因:
有幾個主要的錯誤原因:
這個錯誤發生在當你的程序試圖執行更新數據庫或其它類似操作時。這是因為

1、最普遍的原因是匿名用戶帳號(IUSR_MACHINE)對該數據庫文件沒有寫權限。
 要解決這個問題,在管理器中調整數據庫文件的屬性,讓匿名用戶有正確的權限。當使用ACCESS數據庫時,不僅要給文件寫的權限,還要給該目錄寫 的權限,因為Jet需要在該目錄建立一個.ldb文件。

2、第二個原因是數據庫沒有使用正確的模式打開。應該使用下面的方法打開。
  SQL = "UPDATE Products Set UnitPrice = 2;"
  Set Conn = Server.CreateObject("ADODB.Connection")
  Conn.Mode = 3   '3 = adModeReadWrite
  Conn.Open "myDSN"
  Conn.Execute(SQL)
  Conn.Close
  注意默認的Mode是設置0(adModeUnknown),它是允許更新的。
3、還有可能是在ODBC管理器中將該DSN的只讀選項選中。
4、你是在同時更新兩個表中的字段,也會出現這個錯誤信息,解決辦法是分開來更新這兩個表中各自字段。
5、當你使用了一個從低版本中(如ACCESS2.0,ACCESS7.0)載入到高版本(ACCESS 2000)中的查詢時,在執行這個查詢是會出現該錯誤。

而我們公司服務器上的博客出現的問題如要是Windows 2000,IIS 5/4下面,Form內容超過200K解決辦法! 下面是我在網上搜索到的解決辦法

前遇到過這種情況,Request.Form提交的數據太多了,導致IIS報告異常“堆棧溢出. 處理中的數據超過允許的極限”。這是因為iis默認設置中最大只能接受200K的內容。是這里造成的原因,這個方法還是比較可行的。

IIS6 可以做以下調整。

先在服務里關閉iis admin service服務
找到windows\system32\inesrv\下的metabase.xml,
打開,找到ASPMaxRequestEntityAllowed 把他修改為需要的值,默認為204800,即200K
然后重啟iis admin service服務

把它修改為51200000(50M)

IIS5.0/4.0 在注冊表內 -

Description of the MaxClientRequestBuffer Registry Value
 

Default Sizes in IIS 4 and 5
In IIS 4.0, the default maximum size of request line and header fields is 2 megabytes (MB).

In IIS 5.0, this is reduced to 128 kilobytes (KB).
In IIS 5.0 with Windows 2000 Service Pack 4 installed, this is reduced to 16 KB.

另外網上還貼出來一些其它方法,現與大家分享:

提交頁面的代碼

<SCRIPT Language=javascript>
//分塊上傳
function FragmentUp()
{
  var tlngFragmentSize  = 51100;//50K
  var tintFragmentCount = 0;
  var tintI             = 0;
  var tstrContent       = new String;
  var tstrOuterHTML     = new String;

  tstrContent           = document.form1.content_html.value;
  tintFragmentCount     = tstrContent.length / tlngFragmentSize + 1;
 
  for(tintI=0;tintI<tintFragmentCount;tintI++){
 tstrOuterHTML = tstrOuterHTML+"<INPUT type=\"hidden\" name=\"F07\">";
  }
 
  document.form1.F07.outerHTML = tstrOuterHTML;
 
  for(tintI=0;tintI<tintFragmentCount;tintI++){
 document.form1.F07[tintI].value = tstrContent.substr(0, tlngFragmentSize);
    tstrContent                     = tstrContent.substr(tlngFragmentSize);
  }
}

</SCRIPT>

<form name="form1">
<input type="hidden" name="F07">
<textarea name="content_html"></textarea>
</form>

后臺接收處理的頁面代碼:

<%
dim content
for i=1 to request("F07").count
    content=content&request("F07")(i)
next
%>

以上代碼經過測試可行,哈。注意隱藏值和textarea 的值的傳遞。

    相關文章:

發表評論:

◎歡迎參與討論,請在這里發表您的看法、交流您的觀點。

手机捕鱼怎么下载
苹果ipad翻墙好翻吗 时时彩后三组六怎么玩 608彩票 二八杠棋牌娱乐 重庆时时彩的套路 网赌大数据和控杀 江苏时时 重庆欢乐生肖彩票走势图 万能6码如何使用 玩三公扑克牌作弊赌具 腾讯五分彩时时彩计划软件 盈彩平台 PT游戏娱乐平台 好用的分分彩软件计划 网上通比牛牛有假吗 北京pk开奖直播网