IBエラーについて

解決


studio-take  2012-08-16 04:07:17  No: 42771

Delhpi7ent + FB2.0.4でTIBDataSetを使って、書き込みを使用としたんですが、

arithmetic exception, numeric overflow, or string truncation
-Cannot transliterate character between character sets

という、エラーが出て
Locate('日付;文字列;整数;文字列',VarArrayOf([*,*,*,*]),[] )
というのを、
Locate('日付;文字列;文字列;整数',VarArrayOf([*,*,*,*]),[] )
にして、エラーを減らせたんですが、それでも

arithmetic exception, numeric overflow, or string truncation

で引っかかります。
特段、今までの使用方法とは変わってないので、どうして漏れてるのか分かりません。
Locate手前でShowMessage()して文字列等を確認したのですが、漏れるほどの引数でもなかったです。

解決の糸口をつかみたいので、ヒントでもいいので教えてください。
宜しくお願いします。


studio-take  2012-08-16 04:29:24  No: 42772

新規プロジェクトで、簡素なソースなら挿入できました。

で、アプリ本体側は、トランザクション内に3つのIBDataSetを置いて、3テーブルに書き込む予定だったんですが、どれを単体で動かしても

上記エラーが出ます。
ちなみにIBQueryやらIBDataSetがデータモジュール内に20以上あります。
多すぎると問題あったりするんでしょうか?


igy  2012-08-16 05:05:01  No: 42773

関係ないかもしれませんが・・・

Delphi7用のIBXはVer.7.11までアップデートがあったと思うのですが、
お使いのIBXのバージョンはいくつですか?

http://cc.embarcadero.com/Author.aspx?ID=102


studio-take  2012-08-16 05:17:24  No: 42774

すいません。
コンポーネントのバージョン確認ってどうやるんですか?

基本、何回も入れ直しているので、インストールCD初期状態です。


studio-take  2012-08-16 05:27:47  No: 42775

IBXバージョンアップしてみました。
ポップアップメニューが変わってたので、いけてると思うんですが。
やっぱり、
arithmetic exception, numeric overflow, or string truncation
出ました。
同等の機能を別のDLLで小さくまとめてみようと思います。
いろいろ詰め込みすぎているので。


igy  2012-08-16 05:31:30  No: 42776

>コンポーネントのバージョン確認ってどうやるんですか?

ソースコードだと、IBXConst.pas の IBX_Version かと・・・


igy  2012-08-16 05:42:43  No: 42777

>基本、何回も入れ直しているので、インストールCD初期状態です。

関係ないと思いますが、Update 7.1もありますので・・・


au  2012-08-16 17:53:22  No: 42778

実行しようとしてるクエリーをFirebirdでisqlなりIBConsoleなりを使って直接実行してもエラーでます?
character setがnoneのDBに文字列挿入しようとしたら同じようなエラーがでるとか見た記憶があるんで


studio-take  2012-08-16 19:23:18  No: 42779

現在3つのIBDataSetの2つまで通るようになりました。
原因は、複合主キーの設計と思うんですが、
前はPrimary Key(日付、文字列、整数、文字列)だったのを
Primary Key(日付、文字列、文字列、整数)の順番に変えました。

ただ、最後の1つは、主キーの順番を変えても出るので、調査中です。

ShowMessage()でカットしながら追いかけていたんですが、
データベースをOpenして、これはOK,

if Locate('',VarArrayOf([]),[]) then
のところで出ます。


igy  2012-08-17 06:17:20  No: 42780

関係ないかもしれませんが・・・

> FB2.0.4で

Ver.2.0.x に関しては、Ver.2.0.7 がありますが・・・


igy  2012-08-17 06:51:09  No: 42781

ついでですが・・・

> FB2.0.4

略さずに Firebird と したほうがよいかもしれませんね。


studio-take  2012-08-17 08:57:29  No: 42782

略しすぎ注意ですね。
バージョンも2.07にあげました。

でもまだ、手こずっています。
ブレイクポイントが効かなくなってて。
とりあえず、POSTメソッドでのエラーとわかりました。

同じデータセットを使ってる別の手続きは、動いているんですが。


studio-take  2012-08-17 09:12:08  No: 42783

すいません。
しょーもないオチでした。

VarChar(6) character set ascii
のフィールドに'CONVERT'と7桁入れていました。

みなさん、ご助言ありがとうございました。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加