|
<p ><b>DB2DD 读者</b><p >我正在尝试在 Visual Basic 中使用导入 API。但是我发现很难找到正确的 dll。我知道 C++ 中有一个 dll,但是,有没有可以从 VB 应用程序调用的 dll 呢? <p ><b>DB2DD 专家 George Baklarz</b><p >有两种方法可以完成这项工作。一种方法就是在 VB 的 DECLARE 部分列出您希望调用的 C API,然后利用标准的调用序列从 VB 调用它,如下面的代码样本所示: <p ><ccid_nobr><table align="center" border="1" bordercolordark="#FFFFFF" bordercolorlight="black" cellpadding="2" cellspacing="0" width="550"><tr><td bgcolor="e6e6e6" class="code"><pre><ccid_code>Type SQLCA_STRUCT sqlcaid As String * 8 sqlcabc As Long sqlcode As Long sqlerrml As Integer sqlerrmc As String * 70 sqlerrp As String * 8 sqlerrd(6) As Long sqlwarn As String * 11 sqlstate As String * 5End TypePublic Declare Function sqlepstart Lib &quot;db2app&quot; Alias &quot;sqlepstart_api&quot; (ByVal junk&amp;#38;, ByRef sqlca As SQLCA_STRUCT) As Integer'DB2_start = sqlepstart(0, sqlca) ' Start DB2 call</ccid_code></pre></td></tr></table></ccid_nobr><p >另一种方法就是生成一个文件,然后发出一条命令在后台执行该函数(当然,取决于您正在试图做什么): <p ><ccid_nobr><table align="center" border="1" bordercolordark="#FFFFFF" bordercolorlight="black" cellpadding="2" cellspacing="0" width="550"><tr><td bgcolor="e6e6e6" class="code"><pre><ccid_code>fileno = FreeFileOpen db2file For Output As #filenosqlstmt = &quot;&quot; + _ &quot;db2start;&quot; + vbNewLine + _ &quot;quit;&quot; Print #fileno, sqlstmt ' Write commands to a fileClose #fileno ' Close it and execute the commanddb2cmd = &quot;db2cmd /i /c db2 -tvf &quot; + db2file ' Generate the commandprogID = Shell(db2cmd, vbMinimizedNoFocus) ' Shell out to run it</ccid_code></pre></td></tr></table></ccid_nobr><p >最后,DB2 的下一个版本将允许您象运行普通的 SQL 表函数那样运行特殊的 API 命令。这会返回有关目前可在 DB2 中找到的许多管理 API 的结果。因此,无需进行 API 调用,您只需使用 SQL 调用就可从 DB2 获取信息。<p >『引自 IBM DW中国』<p >(责任编辑 <ccid_nobr>Sunny</ccid_nobr>) <p align="center"></p></p> |
|