delphi 怎么执行mysql命令

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了delphi 怎么执行mysql命令相关的知识,希望对你有一定的参考价值。

1、在delphi中,将bde控件板的query控件放在form中,在其SQL属性中输入你的查询语句,在将active属性设为true就可执行SQL命令。
当然,之前你要安装mysql的odbc驱动,建立mysql的bde别名,要设置好数据库(database)、数据源(datasource)、查询(query)相互之间的联系。

2、Delphi一般使用TADOStoredProc来访问存储过程,TADOStoredProc与TADOQuery都是继承自TCustomADODataSet类,实际上使用TADOQuery来访问存储过程会更灵活一点:
存储过程脚本:

DELIMITER $$

DROP PROCEDURE IF EXISTS p_test1;

CREATE PROCEDURE p_test1(

iSqn: INT,

sName: VARCHAR(40))

BEGIN

insert into t1(sqn, name) value(iSqn, sName);

END$$

DELIMITER ;

执行存储过程代码:

function Exec_Proc1: Boolean;

begin

result := true;

query.close;

query.sql.clear;

query.sql.add('call p_test1(:sqn, :name)');

query.Parameters[0].value := 1;

query.Parameters[1].value := 'test';

try

query.ExecSql;

except

result := false;

//写日志什么的处理

end;

end;
参考技术A 在delphi中,将bde控件板的query控件放在form中,在其SQL属性中输入你的查询语句,在将active属性设为true就可执行SQL命令。

当然,之前你要安装mysql的odbc驱动,建立mysql的bde别名,要设置好数据库(database)、数据源(datasource)、查询(query)相互之间的联系。
参考技术B 如果是执行 mysql 的外部命令行程序,可以考虑使用 windexec 等函数。

如果是执行 mysql 内部的查询等,你需要先建立与 mysql 数据库的连接,再执行。

delphi执行cmd

要求
一个delphi窗体form1
上面有一个edit1控件
两个Button1
一个是启动
一个是关闭

要求,当按下启动时
就会执行目录下的a.bat
并把结果实时返回到edit1中

当按下关闭时,强行结束a.bat

启动按钮:
procedure TForm1.btn1Click ( Sender: TObject ) ;
var
nResult : Integer ;//定义运行结果变量
begin
nResult := WinExec ( \'c:\\a.bat\' , 0 ) ;//\'\'内的是执行外部命令完整路径,0参数,表明不显示运行窗口,你可以改成1试试效果。
if nResult > 31 then //返回结果大于31表明成功运行
ShowMessage ( \'成功运行!\' )
else
if nResult = 0 then
ShowMessage ( \'超出系统内存资源!\' )
else
if nResult = ERROR_BAD_FORMAT then //
ShowMessage ( \'不是合法的Win32程序\' )
else
if nResult = ERROR_FILE_NOT_FOUND then
ShowMessage ( \'指定的文件未找到\' )
else
if nResult = ERROR_BAD_FORMAT then
ShowMessage ( \'不是合法的Win32程序\' )
else
ShowMessage ( \'未知错误!\' ) ;
end ;
结束按钮:
AFileName指为cmd.exe,bat文件是由cmd.exe执行的
先Uses TLHelp32;
procedure EndProcess(AFileName: string);
const
PROCESS_TERMINATE=$0001;
var
ExeFileName: String;
ContinueLoop: BOOL;
FSnapshotHandle: THandle;
FProcessEntry32: TProcessEntry32;
begin
ExeFileName := AFileName;
FSnapshotHandle := CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
FProcessEntry32.dwSize := Sizeof(FProcessEntry32);
ContinueLoop := Process32First(FSnapshotHandle,FProcessEntry32);
while integer(ContinueLoop) <> 0 do
begin
if ((UpperCase(ExtractFileName(FProcessEntry32.szExeFile)) =
UpperCase(ExeFileName))
or (UpperCase(FProcessEntry32.szExeFile) =
UpperCase(ExeFileName))) then
TerminateProcess(OpenProcess(PROCESS_TERMINATE, BOOL(0),
FProcessEntry32.th32ProcessID), 0);
ContinueLoop := Process32Next(FSnapshotHandle,FProcessEntry32);
end;
end;
edit1?不知道你要返回什么,另外目录什么的,自己再改改吧
参考技术A 可以直接调用cmd啊
start
参考技术B dir 写在一个bat文件里
ShellExecute打开bat文件就可以了
参考技术C 要用到管道吧 参考技术D shell ()

以上是关于delphi 怎么执行mysql命令的主要内容,如果未能解决你的问题,请参考以下文章

远程mysql数据库怎么执行命令

[MySQL]关于mysql的命令语句执行mysql的脚本文件。如下图,想知道为啥会出现这样的问题~应该要怎么解决

怎么在mysql命令行执行一个sql文件

怎么在DELPHI程序中执行DOS命令

怎么用mysql命令行登录,进入mysql命令行

mysql数据库执行sql语句怎么写