Delphi

本类阅读TOP10

·分布式网络考试系统原型分析及实现
·游戏外挂设计技术探讨①
·使用HOOK随心监视Windows
·Delphi 水晶报表打包解决
·试题库开发中非文本数据的处理
·如何将几个DBGRID里的内容导入同一个EXCEL表中....的问题
·如何使用Delphi设计强大的服务器程序
·工人线程中关闭窗体的实现
·用DLL方式封装MDI子窗体。
·支持XP下托盘栏气球提示的托盘单元

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
delphi2005探讨之四

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

笔者在用delphi2005调试其自带例子的DBWebFilterSample时遇到以下问题:若BdpDataAdapter1的active属性设为true,编译运行出现以下错

“/DBWebFilterSample”应用程序中的服务器错误。
--------------------------------------------------------------------------------
Connection open failed. unavailable database
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: 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

 

属性设为false,出现以下错误:
“/DBWebFilterSample”应用程序中的服务器错误。
--------------------------------------------------------------------------------
输入字符串的格式不正确。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: 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实现web查询,对以上小错误稍加修改,编译运行不出现错误,但不显示任何数据。为了让其显示数据,笔者自
行在webform1设计窗体加入一个按钮,在按钮事件中加入以下代码:
if not BdpDataAdapter1.Active
thenBdpDataAdapter1.Active:=true;
编译运行点击此按钮,出现以下错误:
“/DBWebFilterSample”应用程序中的服务器错误。
--------------------------------------------------------------------------------
Connection open failed. unavailable database
说明: 执行当前Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息:
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属性需设为true,但这么设置后也不行啊。肯定是数据库连接有问题,但在设计状态下测试数据
库连接没有问题呀,于是把重新在按钮事件加入数据库连接所有属性,编译运行,点击,故障依旧。 再仔细查阅帮助文件,内有如下内容: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属性设为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属性设为true

去掉所加按钮及其代码,再次编译运行,一切正常。




相关文章

相关软件