mormot2笔记(一) 连接数据库

这篇具有很好参考价值的文章主要介绍了mormot2笔记(一) 连接数据库。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

mormot2笔记(一)     连接数据库mormot2笔记(一)     连接数据库
unit Unit1;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.Grids, Vcl.StdCtrls,
  mormot.db.sql, mormot.db.core, mormot.db.sql.oledb, mormot.core.base;

type
  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
    Memo1: TMemo;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

  TSqlDBOleDBMSSQLConnectionPropertiesEx = class(TSqlDBOleDBMSSQLConnectionProperties)
  public
    constructor Create(const aServerName, aDatabaseName, aUserID, aPassWord: RawUtf8); override;
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
  var conPool := TSqlDBOleDBMSSQLConnectionPropertiesEx.Create('192.168.1.2', 'xb', 'sa', '223344');
  var dataTable := conPool.ExecuteInlined('select top 10 * from TestTable', true);
  StringGrid1.ColCount := dataTable.ColumnCount;
  StringGrid1.RowCount := 100;
  var rowIndex := 1;
  while dataTable.Step do
  begin
    for var I := 0 to dataTable.ColumnCount-1 do
    begin
      StringGrid1.Cells[I, rowIndex] := dataTable.ColumnString(I);
    end;
    inc(rowIndex);
  end;
end;

{ TSqlDBOleDBMSSQLConnectionPropertiesEx }

constructor TSqlDBOleDBMSSQLConnectionPropertiesEx.Create(const aServerName,
  aDatabaseName, aUserID, aPassWord: RawUtf8);
begin
  fProviderName := 'SQLOLEDB.1';
  inherited Create(aServerName,aDatabaseName, aUserID, aPassWord);
end;


end.
View Code

 

注:由于 ProviderName 属性是只读的,所以在create中初始化一下(能不修改源代码就不改)

mormot.db.sql.oledb   单元中定义了mssql相关类,如果连接其它数据库则要引用相对应的文件。

 

ODBC连接,注释的几种都是可行的:

  FDBProp := TSqlDBOdbcConnectionProperties.Create('321', '', 'sa', '12345');   //已经建好321连接,使用OLEDB驱动,不能省略【用户名】和【密码】
  FDBProp.Dbms := TSqlDBDefinition.dMSSQL;
//  FDBProp := TODBCProp.Create('123', '', 'sa', '12345'); //同上 123使用ODBC驱动, 不能省略【用户名】和【密码 】
//  FDBProp := TODBCProp.Create('', 'DSN=123;UID=sa;PWD=Sa12345;DATABASE=MyDB', '', '');  //使用ODBC驱动,可以省略【用户名】和【密码】
//  FDBProp := TODBCProp.Create('', 'DRIVER=ODBC Driver 17 for SQL Server;UID=sa;PWD=12345;Trusted_Connection=No;SERVER=192.168.1.50;MARS_Connection=yes;DATABASE=MyDB', '', ''); //这样也可以
//  FDBProp.SqlDriverConnectPrompt := TRUE;   //会弹出ODBC设置对话框

  var dbProp := TSqlDBOdbcConnectionProperties.Create('', 'FILEDSN=d:\test.dsn;PWD=Sa12345', '', '');

备注:DEUBG运行时,执行到 CreateMissingTables 方法时报函数序列错误,但脱离IDE环境执行是不报错.。

 

mormot2笔记(一)     连接数据库mormot2笔记(一)     连接数据库
  //改下两个都可以行
  var constr := 'ODBCDriver=ODBC Driver 18 for SQL Server;User_Name=sa;Password=Sa12345;Database=platform_bh;ODBCAdvanced={SERVER=192.168.1.50;Trusted_Connection=No;Encrypt=Optional;TrustServerCertificate=Yes;AutoTranslate=No;Regional=Yes;TransparentNetworkIPResolution=Disabled};DriverID=ODBC';
  var str := 'ODBCDriver=SQL Server;User_Name=sa;Password=Sa12345;Database=CTLed;ODBCAdvanced={SERVER=JJW-PC\SQLEXPRESS;Regional=Yes};DriverID=ODBC';
  self.FDConnection1.ConnectionString := str;
  self.FDConnection1.Open();
  var db := TSqlDBFireDacConnectionProperties.Create('MSSQL?Server=192.168.1.50;Encrypt=no', 'testDB', 'sa', 'Sa12345');
//  var db := TSqlDBFireDacConnectionProperties.Create('ODBC?Server=192.168.1.50;Encrypt=no', 'platform_tj', 'sa', 'Sa12345');  无ODBC对应,会报异常
  var rows := db.ExecuteInlined('select * from T1', true);
  memo1.Text := rows.StepAsJson();
View Code

备:

[ODBC]
DRIVER=ODBC Driver 18 for SQL Server
UID=sa
TransparentNetworkIPResolution=Disabled
Regional=No
TrustServerCertificate=Yes
Encrypt=Optional
LANGUAGE=简体中文
DATABASE=MyDB
WSID=JJW-PC
APP=Microsoft? Windows? Operating System
Trusted_Connection=No
SERVER=192.168.1.50
PWD=12345

 

 

  var dsn := rawbytestring('FILEDSN='+ExtractFilePath(ParamStr(0))+'db.dsn');
  var db := TSqlDBODBCConnectionProperties.Create('', dsn, '', '');文章来源地址https://www.toymoban.com/news/detail-670881.html

到了这里,关于mormot2笔记(一) 连接数据库的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 大学英语四新视野 课后习题+答案翻译 Unit1~Unit8

    Unit 1  Text A: Words in use 2022年6月16日 20:57 1 As the gender barriers crumbled , the number of women working as lawyers, doctors, or bankers began to increase significantly from the mid-20th century. 随着性别障碍的 消除 ,从20世纪中期开始,从事律师、医生或银行家工作的女性数量开始显著增加。 2 With the data co

    2024年02月09日
    浏览(39)
  • Java连接数据库(自学笔记)

    一、六步骤         第一步:注册驱动,主要告诉Java程序连接哪种数据库,如MySql、Orcale等,我自己连接的是MySql数据库。             Driver driver = new com.mysql.jdbc.Driver();             DriverManager.registerDriver(driver);         第二步:获取连接,使JVM的进程和数据之间的

    2024年02月08日
    浏览(27)
  • 学习笔记-MySql数据库介绍与连接

    一.MySQL数据库介绍 MySQL是一个关系型数据库管理系统,在 WEB 应用方面,MySQL是最好的 RDMS (Relational Database Management System,关系数据库管理系统) 应用软件,它是由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品,MySQL 是最流行的关系型数据库管理系统中的一个。 1.特点 开源,

    2024年01月19日
    浏览(41)
  • 【大数据笔记】java jdbc连接hive数据库;java hive连接kerberos

    1、pom.xml配置         dependency             groupIdorg.apache.hive/groupId             artifactIdhive-jdbc/artifactId             scope2.1.1/scope         /dependency 2、驱动 org.apache.hive.jdbc.HiveDriver 3、用传统改的Class.forName,然后DriverManager去拿。 二、java hive连接kerberos

    2024年01月19日
    浏览(43)
  • openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

    102.1 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时

    2024年02月07日
    浏览(59)
  • flask笔记 02 | Flask数据库连接(sqlite、mysql)

    Flask没有指定使用的数据库,不像django提供了orm数据库抽象层,可以直接采用对象的方式操作数据库。但为了开发效率,在开发Flask项目中一般会选择 SQLALchemy 来操作数据库,类似django的ORM. SQLALchemy实际是对数据库的抽象,让开发者不直接使用sql语句进行开发,而是通过Pytho

    2024年01月25日
    浏览(49)
  • openGauss学习笔记-100 openGauss 数据库管理-管理数据库安全-客户端接入之用SSL进行安全的TCP/IP连接

    100.1 背景信息 openGauss支持SSL标准协议(TLS 1.2),SSL协议是安全性更高的协议标准,它们加入了数字签名和数字证书来实现客户端和服务器的双向身份验证,保证了通信双方更加安全的数据传输。 100.2 前提条件 从CA认证中心申请到正式的服务器、客户端的证书和密钥。(假设

    2024年02月05日
    浏览(55)
  • VsCode + CMake构建项目 C/C++连接Mysql数据库 | 数据库增删改查C++封装 | 信息管理系统通用代码 ---- 课程笔记

    这个是B站Up主:程序员程子青的视频  C++封装Mysql增删改查操作_哔哩哔哩_bilibili https://www.bilibili.com/video/BV1m24y1a79o/?p=6spm_id_from=pageDrivervd_source=a934d7fc6f47698a29dac90a922ba5a3 安装mysql :mysql 下载和安装和修改MYSQL8.0 数据库存储文件的路径-CSDN博客 创建数据库和表: 参考这篇文章:w

    2024年01月19日
    浏览(49)
  • C++集群聊天服务器 muduo+nginx+redis+mysql数据库连接池 笔记 (下)

    C++集群聊天服务器 网络模块+业务模块+CMake构建项目 笔记 (上)-CSDN博客 https://blog.csdn.net/weixin_41987016/article/details/135991635?spm=1001.2014.3001.5501 C++集群聊天服务器 数据模块+业务模块+CMake构建项目 笔记 (上)-CSDN博客 https://blog.csdn.net/weixin_41987016/article/details/136007616?spm=1001.2014.

    2024年02月19日
    浏览(70)
  • Qt+MySql开发笔记:Qt5.9.3的msvc2017x64版本编译MySql8.0.16版本驱动并Demo连接数据库测试

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130381428 红胖子网络科技博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV、OpenGL、ffmpeg、OSG、单片机、软硬结合等等)持续更新中…   mysql驱动版本msvc2015x32版本调

    2023年04月26日
    浏览(76)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包