0

クエリを実行しようとしていますが、nullINSERTに変換するよう求められます。varcharコードは次のとおりです。

INSERT Runtime.dbo.History (DateTime, TagName, vValue)
VALUES ('2015-09-10 09:00:00', 'ErrorComment', 'Error1')

エラーメッセージ:

データ型 nvarchar を (null) に変換中にエラーが発生しました。

問題はvValue列にあります。

column vValue(nvarchar, null) 

データベースでの表示方法:

ここに画像の説明を入力

内部の値vValueは、使用しているプログラムによって配置されます。データベースに手動で挿入しようとしています。

前回の投稿は欄違いでした、申し訳ありません。

4

3 に答える 3

1

Wonderware サポートに問い合わせたところ、vValue 列では INSERT が設計上サポートされていないことがわかりました。これは文字列値であり、更新は StringHistory テーブルを介して実行されることになっています。

于 2015-10-29T08:18:49.743 に答える
0

データベースの列値の型は何ですか?

float の場合は、文字列ではなく数値を挿入する必要があります。

"error1" を FLOAT にキャストするのは無意味です。Float は数値の例です: 1.15, 12.00, 150.15 "Error1" を float にキャストしようとすると、テキスト "error1" を数値に変換しようとしますが、できません。これは論理です。

列に数値を挿入する必要があります。

于 2015-10-15T11:35:55.843 に答える
0

実験するためのまともなテスト環境があるので、私はあなたの問題を解決できると思います。

Runtime.dbo.History直接対話できるテーブルではなく、View. この場合、ビューは次のように定義されます。

select * from [INSQL].[Runtime].dbo.History

...これは、あなたが表示している履歴データが、Wonderware 独自のシステムである Historian フラット ファイル ストレージ自体からのものであることを意味していると思います。SQL Server Management Studio の

Server Objects -> Linked Servers -> INSQL

...そしてそこでデータをいじりますが、私は本当にお勧めしません。

では、なぜタグの履歴を挿入する必要があるのでしょうか。必要な目的のための他の回避策があるかもしれません。

于 2015-10-16T13:47:06.940 に答える