本記事では CData サポート担当からこんなことを聞かれたらどこを確認すべきか?という観点で、よく頂くお問合せ内容をご紹介します。
記事はこちら →Powershell からの Sybase IQ データ連携タスクを自動化
PowerShell から Sybase IQ に簡単に接続する方法をお探しですか? CData ADO.NET Provider for Sybase IQ は、PowerShell スクリプトの優位性を使い、シンプルで簡単に使えるADO.NET インターフェース を提供します。PowerShell スクリプトで、ADO.NET オブジェクトを使って簡単にSybase IQ に接続して、同期、自動化、ダウンロードなどが可能!
CData ADO.NET Provider for Sybase IQ は、ADO.NET 標準インターフェースへ統合し、PowerShell のような. NET アプリケーションからSybase IQ API へのデータ連携を可能にします。このプロバイダーは、Sybase IQ の認証および相互作用を簡単にします。このチュートリアルでは、PowerShell から直接SQL クエリを実行するための、いくつかの一般的なADO.NET オブジェクトの使い方を説明します。
クエリの実行
次の3つのステップに従って create、read、update、およびdelete (CRUD) のデータ連携コマンドを PowerShell からリアルタイムSybase IQ に実行:
-
プロバイダーのアセンブリをロード:
[Reflection.Assembly]::LoadFile("C:\Program Files\CData\CData ADO.NET Provider for Sybase IQ\lib\System.Data.CData.SybaseIQ.dll")
-
Sybase IQ に接続:
SybaseIQ への接続には、User、Password、Server、Database のプロパティを設定します。TLS/SSL を有効化するには、UseSSL をTRUE に設定します。
$constr = "User=myuser;Password=mypassword;Server=localhost;Database=Northwind" $conn= New-Object System.Data.CData.SybaseIQ.SybaseIQConnection($constr) $conn.Open()
-
SybaseIQDataAdapter のインスタンスを生成してSQL クエリを実行し、結果を出力:
$sql="SELECT ProductName, Price from Products" $da= New-Object System.Data.CData.SybaseIQ.SybaseIQDataAdapter($sql, $conn) $dt= New-Object System.Data.DataTable $da.Fill($dt) $dt.Rows | foreach { Write-Host $_.productname $_.price }
Sybase IQ データの更新
$cmd = New-Object System.Data.CData.SybaseIQCommand("UPDATE Products SET ProductName='Konbu' WHERE Id = @myId", $conn)
$cmd.Parameters.Add(new System.Data.CData.SybaseIQParameter("myId","10456255-0015501366"))
$cmd.ExecuteNonQuery()
Sybase IQ へのデータの挿入
$cmd = New-Object System.Data.CData.SybaseIQCommand("UPDATE Products SET ProductName='Konbu' WHERE Id = @myId", $conn)
$cmd.Parameters.Add(new System.Data.CData.SybaseIQParameter("myId","10456255-0015501366"))
$cmd.ExecuteNonQuery()
Sybase IQ データの削除
$cmd = New-Object System.Data.CData.SybaseIQCommand("UPDATE Products SET ProductName='Konbu' WHERE Id = @myId", $conn)
$cmd.Parameters.Add(new System.Data.CData.SybaseIQParameter("myId","10456255-0015501366"))
$cmd.ExecuteNonQuery()
CodeProject