SSH/Qshell上的SQL命令
我花了相当多的时间搜索溢出的论坛,并使用其他资源试图解决这个问题,但没有成功。如果在其他地方得到答复,我表示歉意。但是,据我所知,它没有 这里是一个小背景。我有一些SQL、Visual basic和自动热键(很棒的程序)的经验。目前,我正在努力学习更多关于SQL的基本知识(也有点生疏) 在我以前和现在的工作中,我经常使用IBM的iSeries(或者一些老手喜欢称之为“大型机”),特别是它的版本:DB2I5/OS上的IBMDB2PE9.7FP5SRMR1 您可能知道,iSeries相关的模拟器有一个功能,允许其用户录制宏以便以后回放。这一特点当然有其局限性。我用visualbasic从头开始编写了一些代码,它们可以执行更灵活的操作。然而,用VB只能做这么多 无论您如何看待iSeries,iSeries的速度都很慢。为了向其数据库/服务器传递/检索信息,其用户受到程序速度的限制(除其他外)。VB宏会受到智能暂停/超时的影响,因为脚本工作需要这些暂停/超时(如自动热键) iSeries确实有一个功能,您可以使用i5/OS查询管理器查询信息、与库(如果我有权的话是模式?)和表交互。它还有一个FTP功能(我想它也有它的用途)。 我已经开始使用Powershell和SSH/Qshell,我在他们网站上的IBMs广泛支持部分阅读了很多关于iSeries和所有相关内容的文档 以下是问题:SSH/Qshell上的SQL命令,sql,ssh,db2,ibm-midrange,Sql,Ssh,Db2,Ibm Midrange,我花了相当多的时间搜索溢出的论坛,并使用其他资源试图解决这个问题,但没有成功。如果在其他地方得到答复,我表示歉意。但是,据我所知,它没有 这里是一个小背景。我有一些SQL、Visual basic和自动热键(很棒的程序)的经验。目前,我正在努力学习更多关于SQL的基本知识(也有点生疏) 在我以前和现在的工作中,我经常使用IBM的iSeries(或者一些老手喜欢称之为“大型机”),特别是它的版本:DB2I5/OS上的IBMDB2PE9.7FP5SRMR1 您可能知道,iSeries相关的模拟器有一
首先,我要感谢大家的评论和见解 沃伦: 感谢您的见解。IBM DB2 PE 9.7 FP5 SRM R1实际上是DB2 LUW,或“COBRA”。这个特定的模拟器是IBM 3270模拟器的改编。这个仿冒品是由attachmate提供给您的(他们添加了一些提示,不再提供支持、ODBC驱动程序等)。在这个版本中,我可以选择使用IBM DB2 Query Manager for i5/OS。我同意服务器是分区的(我想是吧?),因为我能够调用不同的提示,比如DB2/SQLJ/JAVA,只是使用它们还不太成功。lol。也许我下面的尝试将揭示更多信息 詹姆斯:
感谢您的输入,我从来没有想过直接从powershell执行此操作。至于红皮书,请拥有它!我仍在阅读它。这可能比我目前使用powershell和ADO.NET时所处的位置要高级一些。我需要更深入地查看您的编码示例,以便更好地理解它 巴克:
我很感谢您的逐点反馈。我不确定您的设置是什么,但IBM I一般(特别是i5之后的任何内容)非常快。我工作的公司……或者至少是我的直接同事,礼貌地说,对I/vba/qsh/等知之甚少。所以,我学到的很多东西都是通过阅读和应用我学到的。实际上,这只是我的第二篇文章。在任何网站上,从来都是如此。我不喜欢仅仅发帖,因为我不能马上想办法。我很固执,如果必须让脚本工作的话,我会花上几个小时 至于STRSQL,我使用的等价物是STRQRY
db2 "select * from sysibm.sysdummy1"
# Assembly name from \\HKCR\Installer\Assemblies\Global
$an = 'IBM.Data.DB2.iSeries,Version="12.0.0.0",PublicKeyToken="9CDB2EBFB1F93A26",Culture="neutral"'
# Connection string
$cs = 'Data-Source=10.0.0.50;UserID=QPGMR;Password=****'
Add-Type -AssemblyName $an
$cn = New-Object IBM.Data.DB2.iSeries.iDB2Connection($cs)
$cn.Open()
$cmd = $cn.CreateCommand()
$cmd.CommandText = "SELECT * FROM SYSIBM.SYSDUMMY1"
$da = New-Object IBM.Data.DB2.iSeries.iDB2DataAdapter($cmd)
$ds = New-Object System.Data.DataSet
$cnt = $da.Fill($ds)
Write-Host "$cnt records selected."
$cmd.Dispose()
$cn.Close()
foreach ($dt in $ds.Tables) {
$dv = New-Object System.Data.DataView($dt)
$dv | Format-Table -AutoSize
$dv.Dispose()
}
$ds.Dispose()