使用 FireDac (Delphi) 在 Firebird 中创建数据库

2024-01-06

我最近从 AnyDac 更改为 FireDac (8.0.5.3365)。我们正在运行 Delphi 2006。

当我使用该组件的 AnyDac 版本时,我可以通过执行以下操作来创建一个新数据库。

设置我的连接

fConnection.LoginPrompt := false;
fConnection.ResourceOptions.SilentMode := true;

fConnection.Params.Clear;
fConnection.Params.Add(Format('DriverID=%s',          ['IB']));
fConnection.Params.Add(Format('Database=%s',          [fConnectionInfo.xDatabase]));
fConnection.Params.Add(Format('CharacterSet=%s',      ['UTF8']));
fConnection.Params.Add(Format('user_name=%s',         [fConnectionInfo.xUserName]));
fConnection.Params.Add(Format('password=%s',          [fConnectionInfo.xPassword]));
fConnection.Params.Add(Format('ExtendedMetadata=%s',  ['True']));
fConnection.Params.Add(Format('CreateDatabase=%s',    ['Yes']));
fConnection.Params.Add(Format('Protocol=%s',          ['Local']))

//database path = C:\Users\LoginName\AppData\Local\AppName\TestDB.FDB

打开和关闭连接

fConnection.Open;
fConnection.Close;

然后我可以在现有数据库上运行创建表 sql 脚本。

但现在,当我使用 FireDac 版本执行此操作时,Open 命令会引发 fbe_unavailable 错误,就好像我没有指定 CreateDatabase 参数一样。

我应该以不同的方式做这件事吗?

谢谢你的时间。

Corey.


你在这里有一个完整的例子http://docwiki.embarcadero.com/RADStudio/Rio/en/Executing_SQL_Scripts_%28FireDAC%29 http://docwiki.embarcadero.com/RADStudio/Rio/en/Executing_SQL_Scripts_%28FireDAC%29

例如,以下 Firebird 脚本创建一个数据库,并且可以使用 TFDScript 执行:

SET SQL DIALECT 3;
SET NAMES UTF8;
SET CLIENTLIB 'C:\fb25\bin\fbclient.dll';
CREATE DATABASE 'E:\Test2.ib'
  USER 'sysdba' PASSWORD 'masterkey'
  PAGE_SIZE 16384
  DEFAULT CHARACTER SET NONE;

SET TERM ^ ;

CREATE PROCEDURE MY_PROC RETURNS (aParam INTEGER) AS
BEGIN
  aParam = 10;
END^

您应该使用 CreateDatabase=Yes 连接定义参数 除其他所需参数外:http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_Firebird_(FireDAC) http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_Firebird_(FireDAC)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 FireDac (Delphi) 在 Firebird 中创建数据库 的相关文章

  • 如何在拥有句柄时检查给定进程是否正在运行

    我在用ShellExecuteEx启动应用程序 成功开始阅读后TShellExecuteInfo hProcess获取已启动进程的句柄 我想定期检查我的应用程序启动的进程是否仍在运行 两个或多个同名进程可以同时运行 我想确保我的应用程序正在
  • TFrame继承重构

    我提出的另一个 TFrame IDE 注册组件问题 感谢各位程序员的帮助 尝试 Darrian 的 TFrame 继承建议here https stackoverflow com questions 382562 delphi visual
  • MainFormOnTaskbar + 工具提示导致焦点窃取

    我使用 Delphi XE2 构建了下面的代码 它创建 Form1 Form1 立即创建 Form2 的实例 当我按下 Form2 上的按钮时 会创建第二个 Form2 现在 如果我将鼠标悬停在第二个 最上面的 Form2 上的按钮上 并等
  • D2010编译行数差异

    构建项目时 有两个地方会报告源代码行数 在编译进度对话框中 项目下 信息 在 Delphi 2007 中 对于我们正在构建的项目 这两个数字是相同的 在 Delphi 2010 中 这两个数字截然不同 1st 计数多出 100 万行或 40
  • 如何将枚举类型放入字符串列表中?

    这行代码 ShowMessage GetEnumName TypeInfo TAlign 1 返回 alTop 当我想使用字符串变量 TAlign 而不是TAlign时 如何将枚举类型的所有值放入字符串列表中 就像是 ShowMessage
  • 有用的 Delphi 代码模板

    我用 Delphi 编程已经两年多了 我大概只有 5 个自定义模板 我觉得我应该有更多 如果有人有任何特别有用的东西 那么在 stackoverflow 上有一个很好的存储库就太好了 我不在乎您使用的是 Delphi 2009 语法还是 D
  • 使用 Delphi 10.2.1 Tokyo 的模态 Android 对话框

    我有以下用于在 Android 上显示模式消息的 Delphi 代码 该代码在 10 1 Berlin 上运行良好 但在 Delphi 10 2 1 Tokyo 上停止运行 此过程现在会挂起 Android 应用程序 procedure c
  • (发件人:TObject)

    发件人 TObject 是什么意思 如 procedure TForm1 Button1Click Sender TObject var s Integer begin end Sender 是对触发事件的组件的引用 在这种情况下 Send
  • Delphi XE4 中是否可以更改应用程序短标题而不使其与项目 dpr 名称相同?

    我正在编写我的第一个由 delphi 驱动的 iPhone 应用程序 我已经创建了它 但我希望将其命名为 dpr 文件名称以外的名称 因为 dpr 文件不能包含空格 例如 EXE 名称并不总是与人们可能分配给应用程序的人类可读名称相同 而在
  • Delphi + Synapse:如何检查我是否仍然连接

    我在用TTCPBlockSocket http synapse ararat cz doc help blcksock TTCPBlockSocket html对于 TCP IP 应用程序 问题是我无法确定连接何时丢失 GetLastErr
  • 如何将 Excel 或 CSV 文件加载到 Firebird 中?

    我在用着Firebird http www firebirdsql org数据库 我需要将 Excel 文件加载到数据库表中 我需要一个能很好地完成这项工作的工具 我尝试了一些在谷歌上找到的东西 但它们都有一些错误 由于 Excel 数据不
  • Android中如何检测程序的终止?

    当 Windows 程序终止时 它会调用事件处理程序 例如 OnClose OnDestroy 和析构函数 Destroy 当我想保存一些 INI 设置时 这些地方就是我要保存的地方 我为所有这些事件编写了事件处理程序 但当我终止程序时它们
  • 是否可以将大字符串写入 Firebird blob?

    Firebird 的文档暗示您可以将大型 gt 60K 字符串写入表中的 blob 值 所以如果你有这个 CREATE TABLE MyBlobTable theId int PRIMARY KEY NOT NULL theBlob BLO
  • 新编译的应用程序需要 UAC/elevation?

    我有一个系统 我将其设置为普通的 UAC 并在我的 delphi 环境中编译名为 ka exe 的项目 并为其创建一个 installshield 项目 设置完毕 一切顺利 但每当我开始我的程序时 它都需要提升 而我不知道为什么 为了确保
  • 如何检查文件是否有备用数据流?

    Delphi 有没有办法检查文件是否有任何备用数据流 看一下 Win32 APIFindFirstStreamW https msdn microsoft com en us library windows desktop aa364424
  • 让线程在窗体关闭时保持运行

    我在我的应用程序上创建了一个同步线程 我想知道如果我关闭申请表 是否有办法让该线程保持打开状态 直到完成同步过程 调用线程的WaitFor方法在您的 DPR 文件中 之后Application Run线 如果线程已经运行完毕 那么WaitF
  • 如何将 Delphi Chromium Embedded (TChromium) 组件的声音静音?

    我需要将某个声音静音TChromium组件来制作无声浏览器 主要问题是在 Windows XP 上 当我将浏览器的声音静音时 它会静音整个系统的声音 有没有办法让电脑静音TChromium成分 我已经成功使用以下代码 procedure C
  • 在该对象调用的事件期间销毁该对象

    我有一个按钮 它的 OnClick 事件调用一个销毁按钮的过程 但随后 线程 想要返回到 OnClick 事件 并且我遇到了访问冲突 我完全被难住了 您需要在按钮的所有代码执行完毕后销毁该按钮 执行此操作的标准方法是将用户定义的消息发布到表
  • 如何为每个线程自动全局初始化/取消初始化某些内容?

    我有一个单位initialization and finalization部分 该单元包含一个复杂的对象 该对象在initialization并毁于finalization 但是 该对象还包含一个 ADO 连接 这使得跨线程使用它时出现问题
  • Delphi XE 和 OmniXML:使用 SelectNode()?

    我将以下 XML 片段作为一个更大的 XML 文件的一部分 我正在使用最新的 OmniXML 快照进行处理

随机推荐

  • 删除文件中的非 ASCII 字符 [重复]

    这个问题在这里已经有答案了 如何删除非ASCII http en wikipedia org wiki ASCII文件中的字符 如果你想使用 Perl 请这样做 perl pi e s ascii g filename 详细说明 以下解释涵
  • 删除C++中静态函数中分配的内存

    我有 C 类如下 class anotherClass class myClass private myClass myClass typedef std map
  • 创建 ActiveRecord 对象时如何设置属性?

    我正在尝试在我正在创建的对象上设置属性 我觉得这应该有效 def create album Album new params album album user current user if album save flash notice
  • 如何在 iPhone 中将 Html 标签转换为纯文本

    我有这样的网络服务响应 NSString str Slight b left b onto b Adelaide Rd B509 b div style font size 6 Continue to follow Adelaide Rd
  • 如何使用 Ruby Savon 编写 SOAP 身份验证标头

    我是第一次调用基于 SOAP 的 API 我从文档中获得了以下信息 在您的客户端中 按如下方式构建授权标头 1 连接用户名和密码 例如 示例用户名 示例密码 2 以 64 为基数对字符串进行编码 例如 RXhhbXBsZVVzZXJOYW1
  • 是否可以避免对话框函数中的静态或全局变量

    如果在对话框函数中需要某种状态 那么似乎您需要某种静态变量 例如 GetOpenFileName 的钩子过程在其 WM INITDIALOG 调用上向对话框函数提供 OPENFILENAME 结构的地址 但不在任何后续调用上 并且 OPEN
  • MapView、MapFrament 和 SupportMapFragment 之间的区别

    我会知道其中的差异 因为我正在开发一个应用程序 并且我会引入 Google Map API v2 来编译 Android 2 3 以上版本 我应该使用哪个 MapView 显示一个视图map 使用从 Google 地图服务获得的数据 当聚焦
  • 如何使用 React 在点击时动态添加和删除类?

    我有一个链接列表 我在点击时添加一个类 称为 is active 同时 我想删除除我单击的链接之外的所有现有 is active 可能只有一个元素具有 is active 类 因为该元素将 活动 页面 使用布尔玛CSS 这是我迄今为止尝试过
  • Altair 默认调色板颜色(十六进制)

    如何找到 Altair 默认调色板的十六进制表示形式 每个绘图工具都有其优点和缺点 我通常最终生成由 Seaborn Altair 组成的可视化效果 我想在 Seaborn 中匹配 Altair 颜色 对于 Seaborn 您可以获取 co
  • Flutter:FloatingActionButton 阴影

    您是否能够或者有什么方法可以改变由FloatingActionButton extended或任何其他浮动按钮 你可以尝试这样的方法 floatingActionButton FloatingActionButton onPressed b
  • 通过 XAML 中的滚动检测 WebView 高度

    我真的需要能够计算出给定的 HTML 片段有多高WebView 这对于我正在尝试构建的项目非常重要 我知道这不可能立即实现 但我可以确定 WebView 上是否存在滚动条 我也许可以增加视图的高度 直到它消失 对此有什么想法吗 或者有任何替
  • 从启动进程获取窗口句柄

    我看到有win32process GetWindowThreadProcess 它获取一个窗口处理程序并返回它的进程 ID 有没有办法做相反的事情 通过进程 ID 获取正在运行的进程的窗口处理程序 就像是win32gui GetWindow
  • 如何在 Angular 2 中获得全彩色的垫卡标题背景?

    我在 Angular 2 中制作了一个联系表 我会制作一个彩色顶栏
  • 找出构建 Binary 的 Go 版本?

    有没有办法知道二进制文件是用哪个版本构建的 我的工作站上有多个 go 实例 因此我想验证是否使用了正确的实例 以下命令应该可以做到这一点 strings binary path grep go1 go1 5 3
  • 并行性如何使用matlab求解ODE参数扫描

    只是想问一些有关我的代码的问题 从互联网上获取了此代码 这可能与 mathworks 网站中的示例相同 我在 MATLAB 中模拟此代码并得到了结果 我可以看到解决该问题所需的时间更少使用并行计算 具有 2 个工作线程的 matlabpoo
  • 在模板中同时迭代两个字典

    我试图在模板中同时打印两个字典的值 例如 td key td td value from dict1 td td value from dict2 td 两个字典包含相同的键但不同的值 有什么办法可以实现这一点吗 您可以使用自定义过滤器来完
  • 谷歌地图图像?

    有什么办法可以捕捉谷歌地图的图像吗 我无法使用静态地图 因为我在地图中有自己的折线 并且我希望它们出现在 屏幕截图 中 基本上 我希望用户导航地图 添加一些折线 当他单击 保存 时 我将保存线条 坐标 缩放 但我还希望有一个图像在列表中以缩
  • 删除 Service Fabric 应用程序后进程仍继续运行

    当我删除服务结构应用程序时 我已经看到了这一点 应用程序内服务的旧进程仍然继续运行 应用程序中包含的服务有以下类型 Actors 无状态服务 ASP NET 核心 当我重新部署应用程序时 我注意到了这个问题 并且 ASP NET Core
  • 如何使用 VSTS 2008 Database Edition GDR 版本编辑数据库对象的默认模板

    我正在尝试使用 Visual Studio Team System 2008 数据库版 GDR 版本 来完成我正在开发的一个新项目 并且遇到了一个有点烦人的问题 我希望有人知道如何解决该问题 简而言之 我想更改用于生成数据库对象 特别是存储
  • 使用 FireDac (Delphi) 在 Firebird 中创建数据库

    我最近从 AnyDac 更改为 FireDac 8 0 5 3365 我们正在运行 Delphi 2006 当我使用该组件的 AnyDac 版本时 我可以通过执行以下操作来创建一个新数据库 设置我的连接 fConnection LoginP