var
Connection: TSQLConnection;
SqlSet:TSQLDataSet;
begin
Connection := TSQLConnection.Create(nil);
SqlSet := TSQLDataSet.Create(nil);
SqlSet.SQLConnection:=Connection;
Connection.DriverName := 'MySQL';
Connection.GetDriverFunc := 'getSQLDriverMYSQL';
Connection.LibraryName := 'dbxmys.dll';
Connection.VendorLib := 'libmysql.dll';
Connection.LoginPrompt:=False;
Connection.Params.Values['Database']:=('shadowxx1');
Connection.Params.Values['User_Name']:=('shadowxx1');
Connection.Params.Values['Password']:=('shadowxx1');
Connection.Params.Values['HostName']:=('shadowxx1');
Connection.Open;
Connection.Connected:=True;
SqlSet.CommandType:=ctQuery;
SqlSet.CommandText:= 'SELECT VERSION()';
SqlSet.ExecSQL;
Connection.Close;
Connection.Free;
SqlSet.Free;
end;
代码有效,但是,如何显示查询结果或将其提取到网格??? 我根本找不到这个信息,在 ADO 中是这样的
DataSrc := TDataSource.Create(Self);
DataSrc.DataSet := ADOQuery;
DataSrc.Enabled := true;
DBGrid1.DataSource := DataSrc;
如果有人可以 - 举一些例子
像这样行不通
最佳答案
你用错了方法。在拥有它的任何 TDataSet
后代中,ExecSQL
用于执行不返回结果集的查询,例如 INSERT、UPDATE、DELETE 或 CREATE TABLE。参见,例如,TSQLQuery.ExecSQL
(强调我的)
Executes a query that does not return a set of records.
Call ExecSQL to execute an SQL command that does not return a set of records. This command is a query other than a SELECT query, such as an INSERT, UPDATE, DELETE, or CREATE TABLE query.
使用 TSQLQuery.Open
从 SELECT 返回行。这样的东西应该可以工作(未经测试——我不使用 MySQL 或 DBExpress):
var
Qry: TSQLQuery;
VersionString: String;
// Set up your connection as above, and open it
Qry := TSQLQuery.Create(nil);
Qry.SQLConnection := Connection;
Qry.SQL.Text := 'SELECT VERSION() as DBVersion';
Qry.Open;
if not Qry.IsEmpty then
VersionString := Qry.FieldByName('DBVersion').AsString
else
VersionString := 'No results found';
Qry.Close;
有关详细信息(包括分步教程),请参阅 Using DBExpress Components在德尔福 docwiki。 (我链接的那个是针对当前的 Delphi 版本的,但是 DBExpress 的基本步骤自引入以来是相同的。)
如果你想要一个在 Delphi 中使用 DBExpress 的基本视频教程,你可以试试 DBExpress Data Access Components in Delphi - Delphi 101 .我没看过,但它是由 Delphi 的制造商 Embarcadero 发布的。
关于mysql - dbExpress 如何显示查询结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21444177/