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命令的主要内容,如果未能解决你的问题,请参考以下文章