喫茶XRAYトップページ

[スレッド全体
]

[10225] レコードが保存できません返信 削除
2016/7/24 (日) 11:42:19 千絵 〔HomePage
こちら様から助けていただき、データベースに接続できることを確認し、
安心して、しばらくDelphiから遠ざかっていました。

また勉強を再開をしたのですが、すぐに躓いてしまいました。
レコードの挿入はできますが、保存ができないのです。

保存に使ったコードは下記です。
Webページを参考にやってみました。

procedure TForm1.Button5Click(Sender: TObject);
begin
  //レコードを保存
  sdsSyain.ApplyUpdates(-1);
end;

どのレコードも保存ができないのではなく、日本語を使ったものだけ保存ができません。
すべてを半角英数字で入力したものは保存されます。

最初のデータは、IBConsole で作成しました。
文字コードは、SJIS_0208 です。
IBConsoleからの追加入力や保存は問題なくできております。
DelphiのバージョンはXE6、使っているPCはWindows7です。

よろしくお願いします。
困ったときばかりやってきてすみません。

[10229] Re:レコードが保存できません返信 削除
2016/7/24 (日) 19:46:05 igy
▼ 千絵さん
> 文字コードは、SJIS_0208 です。

文字コードの指定を、

UNICODE_FSS または、UTF8

にしてみたら、どうなりますか?

[10233] Re2:レコードが保存できません返信 削除
2016/7/25 (月) 23:55:07 千絵 〔HomePage
▼ igyさん
> ▼ 千絵さん
> > 文字コードは、SJIS_0208 です。
>
> 文字コードの指定を、
>
> UNICODE_FSS または、UTF8
>
> にしてみたら、どうなりますか?


いつもありがとうございます。
両方とも試してみました。

UTF8にしたら、日本語のフィールドだけすべて消えました。
新たに入力したものは保存されませんでした。

UNICODE_FSSでは、エラーが出てしまいました。



[10234] Re3:レコードが保存できません返信 削除
2016/7/26 (火) 14:33:49 taka
データベースの文字コード

クライアントの接続文字コード
の設定が違うとかで
文字コード自動変換による文字の破損が一番有力候補ですが

接続のparamsに
lc_ctype=UTF8
を追加しても
日本語が全部消えたとのことなので

古いデータベースをそのまま新しいバージョンにもっていって
使いまわしいるのなら
エンジンとデータベースのODS(On-Disk Structure)のバージョンが違うとか
くらいしか思いつきません。

あとは、シフトジスのコードの時の残骸とかがどこかにあったりして
lc_ctype=CP943C
に設定するようなコードがどこかにあったりするとか

新しいデータベースをUTF8で作って、
接続,書き込みテストする単純なプログラムで正常に書き込み読み込みできるか
確認してみたほうがいいと思います


[10236] Re4:レコードが保存できません返信 削除
2016/7/26 (火) 17:58:37 千絵 〔HomePage
▼ takaさん

UTF8で新しいデータベースを作成しましたが、Delphiで表示させると
真っ白になります。

SJIS_0208 に戻して再度やってみました。
データがアルファベット(半角)では、更新されます。

日本語を入力すると、イメージのようなエラーになります。


[10237] Re5:レコードが保存できません返信 削除
2016/7/26 (火) 19:36:56 igy
▼ 千絵さん
> 日本語を入力すると、イメージのようなエラーになります。

エラーになる原因は、わからないのですが・・・・


Delphi XE6 は、Update 1 がありますが、適用済みですか?
また、InterBase XE3 は、Update 4 と、さらに Hotfix 4 までありますが適用済みですか?

Delphi XE6 でしたら、FireDACが搭載されていますので、
FireDACを試してみるのも、よいかもしれませんね。


[10238] Re6:レコードが保存できません返信 削除
2016/7/26 (火) 22:17:51 千絵 〔HomePage
▼ igyさん

>
> Delphi XE6 は、Update 1 がありますが、適用済みですか?
> また、InterBase XE3 は、Update 4 と、さらに Hotfix 4 までありますが適用済みですか?
>
> Delphi XE6 でしたら、FireDACが搭載されていますので、
> FireDACを試してみるのも、よいかもしれませんね。


ありがとうございます。
買ったときのままです。
DelphiをXE6にバージョンアップしてから、2年ばかり開けませんでした。
初心者向け解説本もないし、自分には無理と諦めていました。
夫は仕事に忙しくてまったく触らないし、10万円以上も払ったので
なんか勿体なくて・・・理由がセコイです(^^;

バージョン情報を見ると「service pack1」となっています。
InterBaseも買ったときのままです。
なにもしていません。オハズカシイです。


[10239] Re7:レコードが保存できません返信 削除
2016/7/26 (火) 22:57:05 igy
▼ 千絵さん
> バージョン情報を見ると「service pack1」となっています。

これは、Windows 7 の 「service pack1」のことかと・・

XE6は、持っていないのですが、バージョン情報のところに、
「インストール済みの更新:」欄は、ありますか?
そこに、
「Update 1 for Delphi XE6 and C++Builder XE6」
のような記載はありますか?
もし、ないようでしたら、Update1 が適用されていない可能性が大きいかと。

InterBase XE3 の Updateはともかく、Delphi XE6 の Update1 は、
できれば適用したほうがよいかと・・・


RAD Studio XE6/Delphi XE6/C++Builder XE6 Update 1 が公開されました
http://edn.embarcadero.com/jp/article/43927
RAD Studio XE6(Delphi XE6/C++Builder XE6) Update 1 における不具合修正リスト
http://edn.embarcadero.com/article/43925

では、

> Issue with dbExpress on XE6

とかの記載もありますし。



[10240] Re8:レコードが保存できません返信 削除
2016/7/26 (火) 23:04:21 千絵 〔HomePage
▼ igyさん

> 「Update 1 for Delphi XE6 and C++Builder XE6」
> のような記載はありますか?
> もし、ないようでしたら、Update1 が適用されていない可能性が大きいかと。


インストール済の更新のところは次の通りです。
「Help Release 1 for Delphi XE6 and C++Builder XE6」
となっています。これって、Updateではありませんよね。

Update をやってみます。
ありがとうございました。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82