Delphi10和12的FDConnection1.GetTableNames参数不一样了

FDConnection1连接excel文件,获取工作表的名字,10的时候一切正常,

Delphi10:

FDConnection1.GetTableNames('', '', '', ss, [osSystem], [tkTable], false);

换成Delphi12.1后,无论如何都不能显示工作表名,尝试了几次,

Delphi12.1要用:

FDConnection1.GetTableNames('', '', '', ss, [osMy],[tkTable],false);

以前的参数使用osSystem,现在必须使用osMy,而且后一个参数必须是tkTable,换成其他的参数都不能显示。

我试了试10.0版本使用osMy不能正常取值ss,必须使用osSystem。

百思不得其解。

20240504补充:12.1去掉参数也是正常的:

FDConnection1.GetTableNames('', '', '', ss)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi中,你可以根据填写的字符串连接到数据库,并将数据库的表显示到ComboBox控件中,同时将选定的表的字段和数据显示到TDBGrid控件中。以下是一个示例代码: ```delphi procedure TForm1.Button1Click(Sender: TObject); var ConnectionString: string; ADOConnection1: TADOConnection; ADOTable1: TADOTable; begin // 构建连接字符串 ConnectionString := Edit1.Text; // 假设连接字符串由一个Edit控件输入 // 创建ADO连接组件 ADOConnection1 := TADOConnection.Create(Self); try // 设置连接字符串 ADOConnection1.ConnectionString := ConnectionString; // 连接数据库 ADOConnection1.Connected := True; // 创建ADOTable组件 ADOTable1 := TADOTable.Create(Self); ADOTable1.Connection := ADOConnection1; // 设置要读取的表名 ADOTable1.TableName := ComboBox1.Text; // ComboBox控件用于选择表名 // 打开表 ADOTable1.Open; // 将表名显示到ComboBox控件 ComboBox1.Items.Clear; ADOConnection1.GetTableNames(ComboBox1.Items); // 显示字段和数据到TDBGrid控件 DBGrid1.DataSource := DataSource1; DataSource1.DataSet := ADOTable1; except on E: Exception do ShowMessage('连接数据库出错: ' + E.Message); end; end; ``` 在上述示例代码中,我们假设连接字符串由一个名为Edit1的Edit控件输入,表名由ComboBox1控件选择。点击按钮后,会获取Edit1中的连接字符串,并使用ADO连接组件连接到数据库。然后,我们创建一个ADOTable组件,并设置要读取的表名为ComboBox1中选定的表名。接着,打开表,并将表名显示到ComboBox控件中。最后,将字段和数据显示到TDBGrid控件中。 请确保在设计时已经正确设置了相关的数据库组件(如ADOConnection、ADOTable、DataSource和DBGrid)。 希望这可以帮助到你!如果你有任何其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值