如何使用 .NET Provider 在 Firebird 上启用 AUTODDL?

Posted

技术标签:

【中文标题】如何使用 .NET Provider 在 Firebird 上启用 AUTODDL?【英文标题】:How to enable AUTODDL on Firebird using .NET Provider? 【发布时间】:2011-08-12 12:29:06 【问题描述】:

我需要通过 C# 应用在 Firebird 嵌入式数据库中启用 AUTODDL。使用isql,执行起来就这么简单:

SET AUTODDL ON;

但我无法使用 FbCommand 执行该语句。我收到了错误:

Token unknown - line 1, column 5
AUTODDL

【问题讨论】:

【参考方案1】:

AUTOddl 不是 firebird 命令,它是 isql 命令。 iSql

你有没有想过使用进程函数来执行命令。

public void Execute() 

Process p = new Process();
p.StartInfo.FileName = @"C:\Programme\Firebird2\bin\isql.exe";
p.StartInfo.Arguments = String.Format( " -q -user 0 -password 1 elias:2 SET AUTOddl ON", user, password,"Database" );
p.StartInfo.UseShellExecute = false;
p.StartInfo.RedirectStandardInput = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.RedirectStandardError = true;

p.Start();

请注意,我没有测试过上述内容,但它应该可以工作。如果没有,您可以尝试将 sql 脚本放入脚本文件中,然后执行该脚本文件。

执行脚本的参数如下。 -q -i c:\Scripts\CreateScript.sql

希望这会有所帮助。

【讨论】:

我一直在使用 IB Query,它还允许使用“SET AUTODDL ON”。不能用 FbCommand 用那句话吗?

以上是关于如何使用 .NET Provider 在 Firebird 上启用 AUTODDL?的主要内容,如果未能解决你的问题,请参考以下文章

Fire Net

HDU 1045 Fire Net(DFS)

深搜(DFS),回溯,Fire Net

HDU 1045 Fire Net (BFS)

ASP.NET WebApi 中的 Fire-forget 和单向调用

HDU-1045-Fire Net(最大匹配)