Delphi 中 FireDAC 数据库连接(设置选项)

FIREDAC连接池配置 以下在delphi XE7下测试 fdphysrcldrvrlnk1: TFDPhysOracleDriverLink; fdgxwtcrsr1: TFDGUIxWaitCursor; fdphysmysqldrvrlnk1: TFDPhysMySQLDriverLink; var adm:TFDManager; oParams: TString 阅读详情

描述了为什么选项集使FireDAC成为一个灵活的数据库框架以及如何使用这些选项。FireDAC提供了大量的选项,这些选项被组织成一个分层的选项系统,大多数选项可以保留其默认值。

一、议题

Topic

Description

数据类型映射

FireDAC提供了一个灵活的可调整的数据类型映射系统,它允许你简化向FireDAC的迁移或优化数据表示。

二、描述

FireDAC的选项分为五组:

  1. FetchOptions - 控制组件和Phys层命令如何从DBMS中获取数据的获取选项。例如,可以一次性获取所有记录或按需获取记录。

  1. FormatOptions - 格式选项,控制DBMS的数据类型如何映射到FireDAC的数据类型并向后延伸。例如,程序员可以为Oracle NUMBER (38)设置映射到dtBCD或dtInt64。更多细节,请阅读数据类型映射。

  1. UpdateOptions - 更新选项,控制FireDAC如何向DBMS发布更新。例如,在更新过程中,FireDAC可以更新一个表中的所有字段,或者只更新改变的字段。

  1. ResourceOptions - 资源选项,控制系统资源的使用方式,数据集的持久性和其他。例如,FireDAC的Phys层命令可以异步执行或封锁。

  1. TxOptions - 交易选项,控制交易的执行方式。例如,在ReadCommitted隔离模式下执行它们。注意,TxOptions不使用选项值继承。

因为FireDAC引入了大量的选项,设置每个数据集或命令可能会使编程变得复杂和容易出错。FireDAC通过引入父-子选项值的继承模型来解决这个问题。选项值从父级传播到子级(自上而下)。如果一个较低的级别没有明确分配的选项值,那么就从较高的级别中获取一个值,该级别已经分配了一个值,或者从最上面的级别中获取一个值。FireDAC有以下几个层次。

  • 管理者(TFDCustomManager, IFDPhysManager)层

  • 连接(TFDCustomConnection,IFDPhysConnection)层

  • 命令(TFDCustomCommand/IFDPhysCommand)/数据集(TFDCustomQuery,TFDStoredProc,等等)级别

管理者是最顶层的,连接是中间层的,而命令/数据集是最底层的。因此,通过设置任何特定的管理器或连接选项,所有数据集都会继承其值。只要程序员没有明确地给数据集选项赋值,这一点就成立。

TxxxOptions.AssignedValues标志控制了这种继承性。如果一个选项在这一层被改变,那么相应的标志就会被包含在AssignedValues中。如果一个标志没有被包括,那么一个选项的值将从上一级继承。如果标志被排除在AssignedValues之外,那么该选项又从上一级继承了它的值。

选项可以使用FDExplorer为一个持久的连接定义进行设置。在连接建立后,选项设置被应用到TFDCustomConnection选项中。

Example 1

数据类型的映射,从DBMS类型到FormatOptions中定义的客户端类型,由所有命令从其连接中继承。

with oConnection.Options.FormatOptions do begin
  OwnMapRules := True;
  MapRules.Clear;
  with MapRules.Add do begin
    PrecMax := 19;
    PrecMin := 4;
    SourceDataType := dtFmtBCD;
    TargetDataType := dtCurrency;
  end;
end;
Example 2

数据仓库应用程序可以使用管理器级别的FetchOptions来设置高速获取模式。这样一来,所有的连接和它们的所有命令都会继承这些选项。

with FDManager.FetchOptions do begin
  Items := [];
  Cache := [];
  RowsetSize := 1000;
end;

Delphi中使用FireDAC与uniDAC高效连接PostgreSQL的实战指南 本文为Delphi开发者提供了使用FireDAC与uniDAC组件高效连接PostgreSQL数据库的实战指南。文章详细对比了两款组件的选择策略,重点解析了驱动依赖(libpq.dll)的配置、连接参数设置、常见错误排查及性能优化技巧,旨在帮助开发者快速构建稳定可靠的数据库连接。 阅读详情

相关推荐

Delphi 10x FireDAC数据库开发与实战原码解析

FireDAC是一个为Embarcadero Delphi和C++ Builder打造的高性能数据访问库,它以一套统一的API支持多种数据库系统。FireDAC的引入,使得开发者可以更加便捷地构建出跨平台的数据库应用,从而解决单一数据库依赖的局限。其主要优势包括快速的性能、全面的数据库支持,以及对各种数据库特性的深度利用。在开始介绍之前,需要了解FireDAC是作为Delphi环境中的一部分,因此它继承了Delphi语言的简洁和高效,同时FireDAC的组件化设计使其拥有高度的可配置性和灵活性。

weixin_29155599的博客 1318

Delphi 中 FireDAC 数据库连接(定义连接)

连接定义是一组参数,它定义了如何使用特定的FireDAC驱动将一个应用程序连接到DBMS。它相当于一个BDE别名、ADO UDL(存储的OLEDB连接字符串)或ODBC数据源名称(DSN)。关于支持的数据库管理系统和相应的参数列表,见FireDAC数据库连接。

sensor_WU 博客 2562

Delphi XE10.2中利用Firedac实现数据库登录界面

Delphi XE10.2是一个强大的集成开发环境(IDE),它提供了构建高性能、可重用的数据库应用程序的工具。Firedac是Delphi中用于数据库开发的一个重要组件,它提供了一系列易于使用的数据库访问类库和接口。Firedac组件是Delphi XE10.2中处理数据访问的核心部分。它支持多种数据库驱动,并能够高效地执行数据操作,如查询、插入、更新和删除等。Firedac还提供了数据感知组件,这些组件能够自动更新GUI元素,从而减少了开发者的工作量。

weixin_31800911的博客 1244

Delphi 中 FireDAC 数据库连接(总览)

本系列包含一组文章,描述了如何用在Delphi中使用FireDAC设置数据库驱动和管理数据库连接。描述了为什么一组选项使FireDAC成为一个灵活的数据库框架,以及如何使用这些选项。FireDAC提供了大量的选项,这些选项被组织成一个分层的选项系统。描述了如何存储和使用FireDAC连接参数以及连接定义的含义。为了指定连接参数,一个应用程序必须使用一个连接定义。描述了如何使用FireDAC打开和关闭与DBMS的连接。描述了如何使用FireDAC的离线模式,它允许你在不与数据库持续连接的情况下处理数据。

sensor_WU 博客 1467

delphi 官方提供的六十多个FireDAC例子

FireDAC是一套独特的通用数据访问组件,用于为Delphi和C ++ Builder开发多设备数据库应用程序。凭借其强大的通用架构,FireDAC支持从Delphi到InterBase,SQLite,MySQL,SQL Server,Oracle,PostgreSQL,IBM DB2,SQL Anywhere,Access,Firebird,Informix等的本地高速直接访问。 基于10年为数据库后端编写本地驱动程序的经验,FireDAC被构建为一个强大的访问层,支持构建真实世界高负载应用程序所需的所有功能。 FireDAC为访问不同的数据库后端提供了一个通用的API,而不会放弃对特定数据库特定功能的访问,也不会影响性能。 它使开发人员能够专注于开发应用程序,而不是关注数据库交互的复杂性。它提供了一组现代功能丰富的组件来解决所有主要的RDBMS环境。它使用一组组件来解决所有支持的RDBMS类型。它通过提供以下方面来降低总体拥有成本: 与单独的昂贵库相比,初始成本更低。 学习和熟悉独特的强大图书馆所需的时间更少。 针对不同数据库时的直接应用设计和开发。

Delphi免客户端直连Oracle数据库

delphi10.01完整代码,未使用第三方组建。 包含连接时必须的oracle4个动态库oci.dll、oraocci11.dll、oraociei11.dll、orasql11.dll。

Delphi 10 FireDac 连接池设置

使用FireDac 连接  MySQL数据库,参考官方帮助文档 http://docwiki.embarcadero.com/RADStudio/XE7/en/Multithreading_(FireDAC), 实现过程如下: 1、在DataModule界面上 放置一个  FDManager 控件; 2、在 Create 事件中: procedure TDM.DataModuleC

jhzhao的专栏 6822

delphi 读写Redis

delphi 读写Redis

Delphi 中用 FireDAC 连接 Excel

今天遇到一个问 delphi相关问题的,提问者“只会ADO的连接方式”,想知道“Delphi firedacquery如何连接EXCEL”,由此产生了一点兴趣,遂研究之,后记录之,供同好参考。 通常,在 Delphi里编写一个桌面数据库应用的步骤可以很简单,拖曳4个控件即可: - TADOConnect控件,用于连接指定的数据库(ADO驱动) - TADOTable控件,用于指定...

yhcad博客 2084

芯片良率提升:从设计到制造的系统性工程实践

在半导体制造领域,良率是衡量生产效率和成本控制的核心指标,直接关系到芯片的经济效益与市场竞争力。其本质是合格芯片占总产出芯片的百分比,提升良率需要从设计源头到制造末端的全流程协同优化。从技术原理看,它涉及可制造性设计、工艺过程控制、缺陷检测与根因分析等多个复杂环节,尤其在先进制程下,随机缺陷和参数变异成为主要挑战。其技术价值不仅在于降低单颗芯片成本,更能加速产品上市、保障可靠性,并成为企业技术实力的关键体现。应用场景贯穿智能手机、数据中心、自动驾驶和人工智能等所有高端芯片领域。本文将结合【芯片制造】与【良率

weixin_42526068的博客 632

保姆级教程:用Kvaser DB Editor从零创建你的第一个DBC文件(附CAN信号属性详解)

本文提供了一份详细的Kvaser DB Editor教程,指导用户从零开始创建DBC文件,并深入解析CAN信号属性的关键设置。通过步骤清晰的安装指南、信号属性配置详解和实用技巧,帮助工程师和学生快速掌握CAN总线通信的核心工具,提升工作效率。

weixin_27076351的博客 249

delphi xe10.2 FIREDAC 三种连接

delphi xe10.2 FIREDAC 三种连接

qq457565758的博客 6141

云漾AI创作平台实战:如何用GPT4.0+Midjourney快速生成商业级插画(附Prompt模板)

本文详细介绍了如何利用云漾AI创作平台结合GPT4.0和Midjourney快速生成商业级插画。通过智能文案生成与视觉化工作流,大幅提升创作效率,适用于电商、社交媒体等多种场景。文章包含实用Prompt模板和参数调整技巧,帮助设计师和内容创作者高效产出专业插画。

weixin_29251567的博客 217

Delphi FireDAC连接MySQL数据库

RAD Studio 10.3 测试√ 所需控件:FDConnection、FDPhysMySQLDriverLink、FDQuery、DataSource 说明:连接的是MySQL,其他的差别应该不是很大(只是猜测),只是简单连接数据库。 步骤: 1、新建一个DataModule(数据模块)【类似于窗体】 2、在FireDAC选项卡中找到主角TFDConnection控件,放到DataModule窗体上,把LoginPrompt设为False,这样在连接时就不会弹出登陆对话框了,也可以选择放弃这一步。

小印丶的笔记 3689

ThreeJS教程:地图案例(包围盒、正投影)

推荐:将加入你的3D工具链。

jianshi2023的博客 1007

DSP TMS320F280049之CCS工程的建立(库函数版)

TMS320F280049 DSP是TI最新出的一款C2000系列的DSP,主频为100MHZ,功能较为强大,具有较多的片上模拟外设。这一节主要讲述如何新建F280049的CCS工程。 Step1.下载文件: 下载C2000Ware软件并安装。下载地址如下: http://www.ti.com.cn/tool/cn/C2000WARE?keyMatch=C2000Ware%2...

fanxianyan1993的博客 1万+

Delphi 中 FireDAC 数据库连接(多线程)

如果满足以下条件,FireDAC是线程安全的。一个连接对象和所有与之相关的对象(如TFDQuery、TFDTransaction等)在每个时刻都由一个线程使用。FDManager在线程开始之前被激活,通过设置FDManager.Active为True。这意味着,在一个线程打开一个查询后,直到它的处理完成,应用程序不能在另一个线程中使用这个查询和连接对象。同样,在一个线程启动一个交易后,直到交易完成,应用程序不能在另一个线程中使用这个交易和连接对象。

sensor_WU 博客 2824

Jenkins Job DSL:用代码管理CI/CD配置的实践指南

Jenkins 是持续集成(CI)领域的经典开源平台,其核心价值在于自动化构建与交付流程。然而传统 UI 配置方式导致配置不可版本化、难以复现、审计困难,严重制约团队规模化协作效率。Job DSL 作为一种声明式配置即代码(IaC)方案,通过 Groovy 脚本驱动 Jenkins 内部 API,实现 Job、View、Folder 等资源的程序化创建与维护,天然支持 Git 版本控制、权限审计与环境一致性保障。它不替代 Pipeline,而是与其协同构成‘流程定义’与‘基础设施定义’双轨体系,显著提升 C

weixin_33744141的博客 518

delphi11中使用FireDAC中的TFDConnection连接mysql数据库

libmysql.dll也可以到WAMP下的mysql目录去复制,"C:\wamp\bin\mysql\mysql5.6.17\lib\libmysql.dll" , delphi使用的是C的库,详见:https://docwiki.embarcadero.com/RADStudio/Athens/en/Connect_to_MySQL_Server_(FireDAC)

weixin_58691040的博客 1138

【AUTOSAR-E2E】-2.2-配置E2E:基于E2EPW配置一个TX发送的Signal Group(使用E2E Profile 2)

《共13页精讲》:此法也适用于E2E Profile 4/5/6/7/11/22 目录 1 检查CAN Matrix Arxml/DBC是否满足E2E需求 2 在DaVinci Developer中为Port添加E2E保护 3 在DaVinci Configurator settings设置 4 如何使用应用层的E2E保护 5 结尾 <--返回「Autosar_BSW高阶配置」总目录--> <--返回「Autosar_BSW高阶配置」专栏主页--> &lt.

「汽车电子助手」的博客 4218

保姆级教程:如何将仅限客户端使用的免费大模型(Gemini、Antigravity、Qwen Code、Kiro 等)转为任何应用可调用的 OpenAI 兼容标准接口

大模型 API 费用太贵?💸 这篇文章分享一个薅羊毛神器,能把 Gemini、Qwen Code、Kiro 等客户端专属的免费大模型转换成标准 OpenAI 兼容接口 🔌。支持多协议互转、账户池管理、Web 管理界面,Docker 一键部署,零成本调用 Claude Opus 4.5、Gemini 3 Pro 等高级模型 ✅

XiaoqiangClub的博客 1033

Delphi 中 FireDAC 数据库连接(建立连接)

在创建了连接定义后,可以建立与数据库的连接。一般来说,有两种方法可以做到这一点:明确地,通过设置TFDCustomConnection.Connected为True或调用Open方法之一。隐式的,通过执行任何需要与DBMS对话的动作。例如,通过设置链接的TFDQuery Active属性为True。请注意,ResourceOptions.AutoConnect必须是True,否则会产生一个异常。

sensor_WU 博客 1466

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

Delphi10.4使用FireDAC数据访问组件开发数据库软件学习开发教程(2)

在此博客中,我们将为一定程度上使用过Delphi / C ++ Builder的用户解释FireDAC的基本用法。欢迎加入Delphi开发局QQ群:32422310Delphi控件源码下载网站 第二个主题 FireDAC的第一印象 FireDAC组件 使用FireDAC创建您的第一个应用程序 FireDAC的第一印象 上一篇中,我简要介绍了在Delphi / C ++ Builder中进行数据库访问的原因以及FireDAC为什么在此方面表现出色。借助FireDAC,您可以轻松快捷地实现数..

Delphi开发局QQ群:32422310 5418

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

delphi使用unigui和firedac控件在linux下通过ODBC连接mssqlserver

在 Linux 环境下使用 Delphi 的 FireDAC 通过 ODBC 连接 SQL Server,需要完成以下步骤。

hacking的专栏 701

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

firedac连接mysql,FireDAC连接数据库

1.建立DataModule2.在FireDAC选项卡中找到我们的主角TFDConnection控件,并放到DataModule窗体上,把LoginPrompt设为False,这样在连接时就不会弹出登陆对话框了。然后再找到TFDManager控件,也放到DataModule窗体上,并且把Active属性设为True,这样一来,在引用了本单元的其它单元中,就可以直接把FireDAC控件的Connec...

weixin_33046149的博客 1181

Delphi 中 FireDAC 数据库连接(恢复连接 )

一个数据库应用程序可以在一个不稳定的环境中工作,网络可能被物理断开或DBMS服务器可能被重新启动。应用程序需要从这种中断中无缝恢复并继续与DBMS进行通信。FireDAC的自动连接恢复功能允许你检测到连接丢失的情况,并对这种情况作出正确的反应和恢复。只有在执行特定的DB操作时,如Open、ExecSQL或Ping,才会发现丢失。然后DBMS驱动会引发EFDDBEngineException,Kind = ekServerGone。

sensor_WU 博客 995
上一篇: Delphi 中 FireDAC 数据库连接(配置驱动程序)
下一篇: Delphi 中 FireDAC 数据库连接(建立连接)
海纳老吴
博客等级 码龄7年 1万+粉丝 329原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

海纳老吴

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值