2017-01-03 10 views
0

私たちはSQL Anywhere 16ベースのERPシステムを使用しています。私の新しい仕事は、特定のテーブルの特定の行にいくつかの変更を記録することです。私は、古い行の値と新しい行の値を比較するトリガーを作成することを計画しました。古い値と新しい値が一致しない場合は、別のテーブルにエントリを書き込む必要があります。 トリガーを追加または編集するには、私はすべてのユーザーをログアウトする必要があります...残念ながら... 私の質問は 私はそれを編集することができるので、私の仕事をするストアドプロシージャに2行渡すことができますユーザーは作業中ですか? アイデア ご協力いただきありがとうございます!ここでSQL Anywhereはストアドプロシージャのパラメータとしてローを渡します

+0

を解析するストアドプロシージャがストアドプロシージャにXMLファイルを渡すと扱うことができるです内部ストアドプロシージャ。 –

答えて

0

は、XML

Dim dt As DataTable 
--Fill dt data 
Dim result As String 
    Using sw As StringWriter = New StringWriter 
     dt.WriteXml(sw) 
     result = sw.ToString().Replace("�", "") 'Replace Char(0) with empty string 
    End Using 
ここ

を作成する方法についてvb.netコードは@xml

DECLARE @doc int 
EXEC sp_xml_preparedocument @doc OUTPUT, @xml 

SELECT column1, column2, DateAdd(hour, yourtimezone,date) AS column3 --UCT to local 
FROM OPENXML(@doc,'/NewDataSet/TableName',2) 
WITH (column1 int, column2 varchar(50),column3 smalldatetime) 
+0

実際には、SQL Anywhere 16でvb.netコードを使用する方法がわかりません。xml-stuffなしで古い行と新しい行をストアドプロシージャに渡す方法はありませんか? – BirdyB

+0

'1'、 'abc'、 '2017-01-03'; '1'、 'def'、 '2017-01-03'のように古い行と新しい行を含むパラメータを文字列にすることができます。 –

関連する問題