筆者在用delphi2005調(diào)試其自帶例子的DBWebFilterSample時遇到以下問題:若BdpDataAdapter1的active屬性設(shè)為true,編譯運行出現(xiàn)以下錯
誤
“/DBWebFilterSample”應(yīng)用程序中的服務(wù)器錯誤。
--------------------------------------------------------------------------------
Connection open failed. unavailable database
說明: 執(zhí)行當前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細信息。
異常詳細信息: Borland.Data.Common.BdpException: Connection open failed. unavailable database源錯誤: 行 288:
Self.DBWebDataSource1.ErrorDlgForeColor := System.Drawing.Color.Black;行 289: Include(Self.Load, Self.Page_Load);行 290:
(System.ComponentModel.ISupportInitialize(Self.BdpDataAdapter1)).EndInit;行 291:
(System.ComponentModel.ISupportInitialize(Self.Employees)).EndInit;行 292:
(System.ComponentModel.ISupportInitialize(Self.DataTable1)).EndInit;
源文件: G:/PRogram Files/Borland/BDS/3.0/Demos/Delphi.Net/DBWeb/WebFilter/WebForm1.pas 行: 290 堆棧跟蹤: [BdpException:
Connection open failed. unavailable database] Borland.Data.Provider.BdpDataAdapter.e()
Borland.Data.Provider.BdpDataAdapter.EndInit() WebForm1.TWebForm1.InitializeComponent() in G:/Program
Files/Borland/BDS/3.0/Demos/Delphi.Net/DBWeb/WebFilter/WebForm1.pas:290 WebForm1.TWebForm1.OnInit(EventArgs e) in
G:/Program Files/Borland/BDS/3.0/Demos/Delphi.Net/DBWeb/WebFilter/WebForm1.pas:344
System.Web.UI.Control.InitRecursive(Control namingContainer) System.Web.UI.Page.ProcessRequestMain()
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; asp.net 版本:1.1.4322.573 若BdpDataAdapter1的Active
屬性設(shè)為false,出現(xiàn)以下錯誤:
“/DBWebFilterSample”應(yīng)用程序中的服務(wù)器錯誤。
--------------------------------------------------------------------------------
輸入字符串的格式不正確。
說明: 執(zhí)行當前 Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細信息。
異常詳細信息: System.FormatException: 輸入字符串的格式不正確。源錯誤: 行 325: else行 326: sCurrentFilter :=
Convert.ToString(o);行 327: StartCustId := Convert.ToInt16(ListBox1.SelectedValue);行 328: EndCustId :=
Convert.ToInt16(ListBox2.SelectedValue);行 329: if StartCustId < EndCustId then
源文件: G:/Program Files/Borland/BDS/3.0/Demos/Delphi.Net/DBWeb/WebFilter/WebForm1.pas 行: 327 堆棧跟蹤: [FormatException:
輸入字符串的格式不正確。] System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info) +0
System.Int16.Parse(String s, NumberStyles style, IFormatProvider provider) +37 System.Convert.ToInt16(String value) +19
WebForm1.TWebForm1.Page_Load(Object sender, EventArgs e) in G:/Program
Files/Borland/BDS/3.0/Demos/Delphi.Net/DBWeb/WebFilter/WebForm1.pas:327 System.Web.UI.Control.OnLoad(EventArgs e)
System.Web.UI.Control.LoadRecursive() System.Web.UI.Page.ProcessRequestMain()
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
由于我測試重點是用delphi2005實現(xiàn)web查詢,對以上小錯誤稍加修改,編譯運行不出現(xiàn)錯誤,但不顯示任何數(shù)據(jù)。為了讓其顯示數(shù)據(jù),筆者自
行在webform1設(shè)計窗體加入一個按鈕,在按鈕事件中加入以下代碼:
if not BdpDataAdapter1.Active
thenBdpDataAdapter1.Active:=true;
編譯運行點擊此按鈕,出現(xiàn)以下錯誤:
“/DBWebFilterSample”應(yīng)用程序中的服務(wù)器錯誤。
--------------------------------------------------------------------------------
Connection open failed. unavailable database
說明: 執(zhí)行當前Web 請求期間,出現(xiàn)未處理的異常。請檢查堆棧跟蹤信息,以了解有關(guān)該錯誤以及代碼中導(dǎo)致錯誤的出處的詳細信息。
異常詳細信息:
Borland.Data.Common.BdpException: Connection open failed. unavailable database源錯誤: 行 301:
if not BdpDataAdapter1.Active then行 303:
BdpDataAdapter1.Active:=true;//此句出錯行 304:
end;
源文件: G:/Program
Files/Borland/BDS/3.0/Demos/Delphi.Net/DBWeb/WebFilter/WebForm1.pas 行: 303
堆棧跟蹤: [BdpException: Connection open failed.
unavailable database] Borland.Data.Provider.BdpDataAdapter.e() Borland.Data.Provider.BdpDataAdapter.set_Active(Boolean value)
WebForm1.TWebForm1.Button1_Click(Object sender, EventArgs e) in G:/Program
Files/Borland/BDS/3.0/Demos/Delphi.Net/DBWeb/WebFilter/WebForm1.pas:303 System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.ipostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
System.Web.UI.Page.ProcessRequestMain()
--------------------------------------------------------------------------------
版本信息: Microsoft .NET Framework 版本:1.1.4322.573; ASP.NET 版本:1.1.4322.573
仔細查閱幫助文件,BdpDataAdapter1的Active屬性需設(shè)為true,但這么設(shè)置后也不行啊。肯定是數(shù)據(jù)庫連接有問題,但在設(shè)計狀態(tài)下測試數(shù)據(jù)
庫連接沒有問題呀,于是把重新在按鈕事件加入數(shù)據(jù)庫連接所有屬性,編譯運行,點擊,故障依舊。 再仔細查閱幫助文件,內(nèi)有如下內(nèi)容:To
To set up a connection
1.In Borland Data Provider: Connections Editor, select the appropriate item from the Connections list.
2.In Connection Settings, enter the Database path.
Note: If referring to a database on the local disk, prepend the path with
localhost:. If using Interbase, for example, you would enter the path to your Interbase database:
localhost:C:/Program Files/Borland/Interbase/Examples/Database/employee.gdb
(or whatever the actual path might be for your system).
3.Complete the UserName and PassWord fields for the database as needed.
4.Click Test to confirm the connection.
A dialog appears confirming the status of the connection.
5.Click OK to return to the Borland Data Provider: Connections Editor dialog.
6.Click OK to return to the Data Adapter Configuration dialog.
In the Command tab, the areas for Tables and Columns are updated with information from your connection.
于是把BdpConnection1的ConnectionString屬性設(shè)為databas=localhost:g:/Program
Files/Borland/Interbase/Examples/Database/employee.gdb;assembly=Borland.Data.Interbase,Version=2.0.0.0,Culture=neutral,Public
KeyToken=91d62ebb5b0d1b1b;vendorclient=gds32.dll;provider=Interbase;username=sysdba;password=masterkey
BdpDataAdapter1的Active屬性設(shè)為true
去掉所加按鈕及其代碼,再次編譯運行,一切正常。
新聞熱點
疑難解答
圖片精選