CrystralReportsでODBC接続 又は OLEDB接続

解決


ユッケ  2010-11-11 21:13:51  No: 39519

はじめまして。開発環境は
Delphi2007
CrystalReport8.0
SQLServer2005 WorkGroup
にてDelphiのプログラムから帳票を印刷をかけるプログラムを作っています。
DelphiにCrystalのコントロールを組み込んで行っています。

今までParadoxをBDEを使用してCrystalを印刷していたので、そのやり方は分かるのですが、
SQL接続を利用した方法が分からなくて困っています。
厳密にはレポートを作成する際のODBC接続又は、OLEDB接続でデータを引っ張ってくることは可能なのですが、
Delphi側でどの様に記述したらよいのか分からなくて困っています。

Paradoxの時は、
  CrystalReport1.Destination    := crptToPrinter;
  CrystalReport1.ReportFileName := '\\AAA\○○○.rpt';
  CrystalReport1.DataFiles[0]   := '\\BBB\△△△.DBF';
  CrystalReport1.Action         := 1;
と指定していました。

SQLの時は
  パスワードやらなんやらの関係なのか、とりあえずレポート側で接続してるし
  何か反応があるかと思い、DataFiles[0]の所は記述せずに実行してみました。
  そしたら「SQLサーバーを開くことが出来ません」と出てしまいます。

OLEDB接続の場合、
Data Source、Initial Catalog、User ID、Passwordの設定文字列を渡すんだろうなと思っているのですが、どうすればいいのかわかりません。

どのたか教えていただけないでしょうか。


ユッケ  2010-11-11 22:28:07  No: 39520

自己解決しました。

http://www.hirano.cc/cgi-bin/cr/yyregi.cgi
に記述されていました。
OLE DBでの接続方法を記述します。
OCXを使用して帳票印刷を行う場合は、
1.レポートの方をOLEDB接続で設定。
2.CystalReport1.Connect      := 'DSN=WWWWW;UID=XXXXX;PWD=YYYYY;DSQ=ZZZZZ';
CystalReport1.DataFiles[0] := 'ZZZZZ.dbo.テーブル名';
で変更を行うようです。

で、合ってるのかな?


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

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






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