0

嘿,我想知道如何从 powershell 连接到 firebird 数据库(gdb)文件。有没有办法使用 .net 数据提供程序来连接火鸟?有没有办法将 System.Data.Odbc.OdbcConnection 连接到 firebird?

4

3 回答 3

1
function Get-ODBC-Data{
param([string]$query=$(throw 'query is required.'))
$conn=New-Object System.Data.Odbc.OdbcConnection
$connStr = "Driver={Red Database/Firebird driver};Server=localhost;Port=****;Database=*.fdb;Uid=user;Pwd=userpassword;"
$conn.ConnectionString= $connStr
$conn.open
$cmd=new-object System.Data.Odbc.OdbcCommand($query,$conn)
$cmd.CommandTimeout=15
$ds=New-Object system.Data.DataSet
$da=New-Object system.Data.odbc.odbcDataAdapter($cmd)
[void]$da.fill($ds)
$ds.Tables[0] 
#Write-Output $ds.Tables[0].rows.count
$conn.close()
}

$query = @"
select count(*)
from UNIFO_PAYMENT U
join DOCUMENT D on D.ID = U.ID
"@

$result = Get-ODBC-Data -query $query
于 2015-07-17T18:42:56.233 回答
1

@Alexandr 的代码来自https://www.andersrodland.com/working-with-odbc-connections-in-powershell/

我建议你阅读全文。虽然他也没有准确地解释代码,但我认为它是相当自我记录的,唯一缺少的信息是如何获取/使用 Firebird 驱动程序。

您可以从 firebird https://www.firebirdsql.org/en/odbc-driver/获取 ODBC 驱动程序安装程序

安装后,打开 Windows ODBC 管理 (odbcad32.exe),检查驱动程序选项卡以确保存在“Firebird/Interbase(r) 驱动程序”。

从这里您可以使用该驱动程序名称来运行 @Alexandr 的代码

$connStr = "Driver=Firebird/Interbase(r) driver;Server=localhost;Port=****;Database=*.fdb;Uid=user;Pwd=userpassword;"

或 转到用户 DSN 选项卡或系统 DSN 选项卡。单击添加,选择 firebird 驱动程序,使用名称、数据库路径和通常需要的其他数据库注册信息设置 DSN。保持 DSN 名称简单,这是您将使用的标识符。

然后你可以简单地将 $constr 替换为

$connStr = "DSN=YourDsnName;"
于 2017-05-19T12:16:23.873 回答
0

是的,powershell 允许您创建 .Net 类并调用 .Net 方法。见这里。因此,您可以轻松地将 C# 代码转换为 powershell。

于 2013-09-09T19:24:24.053 回答