掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Recordset を XML 形式で Stream に保存したい (ID:10164)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
こんにちは、bobです。 基本的にソースのコメント欄に書いてありますが、 Recordset を XML 形式で Stream に保存したく、 http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdmscstreamspersistence.asp を参照し、上記URLのコードはVB6で動作するのを確認しているのですが、 それをDelphiで行おうとすると --- プロジェクト Project1.exe が EAccessViolation クラスの例外を生成しました。 'アドレス B60F0010 でアドレス B60F0010 に対する読み込み違反が起きました。' --- と言う、エラーが発生してしまいXML出力が出来ません。 最小プロジェクトを作成しましたが、再現するので どこがいけないのか、教えて頂けないでしょうか? [環境]W2k Pro SP4+Delphi7 Entです。 [DB]SQL Server 2000 Develop Edition ---以下再現する最小プロジェクトソース(MSDNライブラリVBソース参照) // //Recordset を XML 形式で Stream に保存します // 前提条件:ADO2.6以上(2.7のADODB_TLB) // //[注意] // Delphi7 EntのADOIntとADODBは、Streamに未対応!! // //[参照] //http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/jpado260/htm/mdmscstreamspersistence.asp // unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ADODB_TLB; type TForm1 = class(TForm) Memo1: TMemo; Button1: TButton; Edit1: TEdit; procedure Button1Click(Sender: TObject); end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); Var rs: _Recordset; stm: _Stream; begin rs := CoRecordset.Create; stm := CoStream.Create; try rs.Open('SELECT * FROM Customers', 'Provider=sqloledb;' + 'Data Source=localhost;Initial Catalog=Northwind;' + 'User Id=sa;Password=;', adOpenUnspecified, adLockUnspecified, -1); rs.Save(stm, adPersistXML); stm.Position := 0; Memo1.Text := stm.ReadText(stm.Size) finally rs.Close; rs := nil; end; end; end.
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.