gpt4 book ai didi

Delphi 7 : ADO, 需要基本编码示例

转载 作者:行者123 更新时间:2023-12-03 14:39:31 24 4
gpt4 key购买 nike

我是一个完全的初学者。有人可以将一些 Delphi 代码发布到

  • 创建数据库
  • 添加一个简单的表格
  • 关闭数据库

然后,稍后

  • 打开数据库
  • 阅读每个表格
  • 读取给定表的每个字段
  • 执行简单搜索

抱歉,我这么无知。我谷歌了一下,但没有找到有用的教程......

此外,如果底层数据库是MySql(5.1.36),那将会很有用(我什至不知道这是否有什么区别)

最佳答案

@mawg,我为您编写了一个简单的程序来说明如何使用 ADO 和 Delphi。这是一个控制台应用程序,但解释了基础知识。

在执行此代码之前,您必须从此 location 下载并安装 odbc 连接器.

您可以根据您的要求改进和调整此代码。

program ProjectMysqlADO;

{$APPTYPE CONSOLE}

uses
ActiveX,
DB,
ADODB,
SysUtils;

const
//the connection string
StrConnection='Driver={MySQL ODBC 3.51 Driver};Server=%s;Database=%s;User=%s; Password=%s;Option=3;';


var
AdoConnection : TADOConnection;

procedure SetupConnection(DataBase:String);//Open a connection
begin
Writeln('Connecting to MySQL');
AdoConnection:=TADOConnection.Create(nil);
AdoConnection.LoginPrompt:=False;//dont ask for the login parameters
AdoConnection.ConnectionString:=Format(StrConnection,['your_server',DataBase,'your_user','your_password']);
AdoConnection.Connected:=True; //open the connection
Writeln('Connected');
end;

procedure CloseConnection;//Close an open connection
begin
Writeln('Closing connection to MySQL');
if AdoConnection.Connected then
AdoConnection.Close;
AdoConnection.Free;
Writeln('Connection closed');
end;

procedure CreateDatabase(Database:string);
begin
Writeln('Creating Database '+database);
AdoConnection.Execute('CREATE DATABASE IF NOT EXISTS '+Database,cmdText);
Writeln('Database '+database+' created');
end;

procedure CreateTables;
begin
Writeln('Creating Tables');
AdoConnection.Execute(
'CREATE TABLE IF NOT EXISTS customers ('+
'id INT,'+
'name VARCHAR(100),'+
'country VARCHAR(25) )',cmdText);
Writeln('Tables Created');
end;


procedure DeleteData;
begin
Writeln('Deleting dummy data');
AdoConnection.Execute('DELETE FROM customers');
Writeln('Data deleted');
end;

procedure InsertData;

Procedure InsertReg(id:integer;name,country:string);
var
ADOCommand : TADOCommand;
begin
ADOCommand:=TADOCommand.Create(nil);
try
ADOCommand.Connection:=AdoConnection;
ADOCommand.Parameters.Clear;
ADOCommand.CommandText:='INSERT INTO customers (id,name,country) VALUES (:id,:name,:country)';
ADOCommand.ParamCheck:=False;
ADOCommand.Parameters.ParamByName('id').Value := id;
ADOCommand.Parameters.ParamByName('name').Value := name;
ADOCommand.Parameters.ParamByName('country').Value := country;
ADOCommand.Execute;
finally
ADOCommand.Free;
end;
end;

begin
Writeln('Inserting Data');
InsertReg(1,'Lilian Kelly','UK');
InsertReg(2,'John and Sons','USA');
InsertReg(3,'William Suo','USA');
InsertReg(4,'MARCOTEC','UK');
Writeln('Data Inserted');
end;

procedure ReadData;
var
AdoQuery : TADOQuery;
begin
AdoQuery:=TADOQuery.Create(nil);
try
AdoQuery.Connection:=AdoConnection;
AdoQuery.SQL.Add('SELECT * FROM customers');
AdoQuery.Open;
while not AdoQuery.eof do
begin
Writeln(format('%s %s %s',[AdoQuery.FieldByname('id').AsString,AdoQuery.FieldByname('name').AsString,AdoQuery.FieldByname('country').AsString]));
AdoQuery.Next;
end;
finally
AdoQuery.Free;
end;
end;

begin
CoInitialize(nil); // call CoInitialize()
try
Writeln('Init');
try
SetupConnection('mysql'); //first will connect to the mysql database , this database always exist
CreateDatabase('Mydb'); //now we create the database
CloseConnection; //close the original connection
SetupConnection('Mydb'); //open the connection pointing to the Mydb database
CreateTables; //create a sample table
DeleteData; //Delete the dummy data before insert
InsertData; //insert a dummy data
ReadData; //read the inserted data
CloseConnection; //close the connection
except
on E : Exception do
Writeln(E.Classname, ': ', E.Message);
end;
Readln;
finally
CoUnInitialize; // free memory
end;
end.

关于Delphi 7 : ADO, 需要基本编码示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2918016/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com