- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
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/
我使用的是 Delphi 2010 Professional,它没有附带 Firebird 的 dbExpress 驱动程序。如果我开始使用 Firebird dbExpress driver wri
我是dbexpress的新手,我无法弄清楚如何在运行时为SQL主机名设置TSQLConnection参数。当我在客户端系统上安装程序时,TSQLConnectionHost仍从开发过程中输入的开发系统
我正在使用dbExpress组件(Delphi 7)开发数据库程序。通过以下组件从数据库检索数据:TSQLDataSet-> TDataSetProvider-> TClientDataSet-> T
我有一个基于动态创建的 SQL 查询的 TSimpleDataSet。我需要知道哪个字段是主键? SimpleDataSet1.DataSet.SetSchemaInfo(stIndexes, 'my
var Connection: TSQLConnection; SqlSet:TSQLDataSet; begin Connection := TSQLConnection.Create(
我只使用 DbExpress 组件在 Delphi 中完成了“GUI”数据库访问,但现在我想在后台执行一个查询。我读到一些 TSQLConnection 不是线程安全的,我必须为每个线程创建新连接。我
我的应用程序遇到了一个奇怪的问题,它的内存使用量时不时地增加几百兆字节,最终应用程序卡住。该应用程序是用Delphi编写的,它使用数据库、COM(用于OPC)和TCP/IP。 使用 FastMM,我可
我的 D7 dBExpress 项目应该连接到本地 Interbase XE7 服务器。它具有常用的 DBX 设置:SqlConnection、SqlQuery、DataSetProvider 和Cl
我目前正在 IIS 上设置 Datasnap 服务器。 我已成功让默认的 Datasnap/Javascript 演示正常工作,并将其扩展为将我自己的基于字符串的结果包含到网页版本中。 但是,我很难进
我有这样一条sql语句: UPDATE tbworker SET iState=2 WHERE iState=1; UPDATE tbworker SEt iState=3 WHERE iState=
我正在使用 Delphi 2010 dbexpress 组件连接到我的 MySQL 数据库。我在执行此查询时遇到问题。 SQLQuery1.SQL.Clear; SQLQuery1.SQL.A
我在我的网络 (Mariadb 10.3.24) 上运行 Mysql 服务器,并在相同的数据、相同的机器上使用 dbexpress 和 fireac 进行了性能测试,并且数据库上没有其他用户。我使用的
我在 Delphi 中有一个使用 DBExpress TSQLQuery 的查询,看起来像这样 ActiveSQL.sql.add('SELECT * FROM MYTABLE where MYFIE
我正在尝试从Oracle sql服务器获取查询结果,并将其插入StringGridShowPapers表中。 我已经建立并工作了SQLConnection1(一个DBExpress连接),SQLDat
我正在尝试将 oracle 应用程序部署到另一台使用 dbexpress 中的 dbxora.dll 文件的计算机。我已将该文件包含在程序中,但是当我运行该程序并尝试执行查询时,它会返回错误,无法加载
鉴于以下情况 {------------------------------------------------------------------------------} function TTe
ibdac 查询 ( http://www.devart.com/ibdac/components.html ) 有一个函数 executing 我可以在其中编写如下内容: while MyQuer
我在从程序用户在运行时定义的查询中获取字段列表时遇到问题。我让用户在备忘录控件中输入 SQL 查询,然后我想让他们浏览将返回的字段并执行诸如格式化输出、求和列值等操作。因此,我必须获取列名称,以便它们
我计划将 Delphi 6 BDE 应用程序迁移到 Delphi 2010... 首先,我是否必须放弃 BDE? (我会的,但如果可能的话,我更喜欢分阶段进行) 第二,dbExpress是最好的选择吗
我正在使用 C++ Builder(或 Delphi 2007 和 XE2)以及 DBExpress。我连接了两个数据库,一个用于 firebird(我的本地硬盘),一个用于 MySQL(在 Web
我是一名优秀的程序员,十分优秀!