Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/delphi/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Delphi 找不到FireDac字段_Delphi - Fatal编程技术网

Delphi 找不到FireDac字段

Delphi 找不到FireDac字段,delphi,Delphi,Delphi XE5和SQL Server 2012。我有一个问题:当我的表单被打开时,我连接到数据库并给我的字段赋值,就像这样- dbeCustomer.DataSource := DataForm.SQLDS; dbeCustomer.DataField := 'Customer'; 在我尝试运行独立的.exe程序之前,一切都很好。然后我得到一个错误-“字段”客户“未找到”。也就是说,如果我从Debug文件夹运行编译后的程序,一切正常。当我在调试文件夹外运行这个程序时,我得到一个错误。 如

Delphi XE5和SQL Server 2012。我有一个问题:当我的表单被打开时,我连接到数据库并给我的字段赋值,就像这样-

dbeCustomer.DataSource := DataForm.SQLDS;
dbeCustomer.DataField := 'Customer';
在我尝试运行独立的.exe程序之前,一切都很好。然后我得到一个错误-“字段”客户“未找到”。也就是说,如果我从Debug文件夹运行编译后的程序,一切正常。当我在调试文件夹外运行这个程序时,我得到一个错误。 如果我以这种方式修改代码,那么在任何地方都可以正常工作:

dbeCOwner.DataSource := DataForm.SQLDS;

try
    dbeCOwner.DataField := 'COwner';
   except
    dbeCOwner.DataField := 'COwner';
   end;
你知道怎么会这样吗?谢谢。

我试着猜一下: 1.您已关闭IDE中的“异常停止” 2.您的应用程序缺少DLL或仅在调试目录中的数据库文件


我猜是这样的,因为您在示例代码中吃了异常,所以不会看到任何异常。

仅凭您提供的信息,无法猜测 是什么导致了你的问题。因为你的应用程序的行为 显然,这取决于它运行时所处的位置 要做的事情是从IDE运行它,但在不同的目录中 而不是你的调试

  • 在项目的调试目录上打开Windows资源管理器。移动一切 在它的项目目录

  • 在IDE中,转到查看|项目经理

  • 选择
    Debug
    ,右键单击它并从弹出窗口中选择
    Edit

  • 输出目录设置为项目目录

  • 在IDE中,转到工具选项,在弹出窗口中,转到
    Embarcadero调试器|语言异常
    并选中
    通知语言异常

  • 构建应用程序并检查步骤1中的
    Debug
    文件夹是否仍然为空

  • 运行应用程序并调试


  • 您的.Exe的位置不应对此产生任何影响。最有可能的原因是代码中的某些内容没有包含在q中。请在您的q中添加包含您所引用代码的过程/函数的完整代码。如果该单元不超过几十行,那么最好包含整个单元。此外,当异常发生时,请使用View | Debug Windows |调用堆栈查看异常发生的位置。“您的.Exe的位置不应对此产生任何影响”是的,我就是这么想的。但是,根据.exe文件是在调试文件夹中还是在其他任何地方,它的行为会有所不同,这很奇怪……好吧,将.exe从调试文件夹移动到其他地方,然后在调试器下的IDE中运行它。这应该会揭示你为什么会出现异常。我不知道怎么做。你仍然没有在q中添加更多的代码,这可能会帮助读者发现问题。我想,你的猜测都不正确……以下是我的工作`1)连接SQL Server 2)编写一些SQL查询(sqlStmt:=“按nNo从MTable ORDER中选择TOP 50*”;)3)为我的TDBTexts赋值4)运行SQL查询“在这种情况下,如果我在调试文件夹外运行.exe文件,我会得到一个错误“字段”或“未找到”字段。但如果把第四行改成第三行,一切都会好起来。你绝对是对的。如果我没看错你的问题,我以前就知道了。非常抱歉。