Watch, Follow, &
Connect with Us

For forums, blogs and more please visit our
Developer Tools Community.


Welcome, Guest
Guest Settings
Help

Thread: C++Builder10.1データアクセス部分でエラー



Permlink Replies: 4 - Last Post: Oct 20, 2016 2:19 AM Last Post By: 朋則 北山
朋則 北山

Posts: 22
Registered: 8/14/15
C++Builder10.1データアクセス部分でエラー
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 10, 2016 6:26 PM
C++Builder6で作成されたアプリケーションのC++Builder10.1への移行作業を 行っています。
ビルド時に以下のエラーが発生します。

[ilink32 エラー] Error: 未解決の外部シンボル 'Data::Win::Adodb::TADOConnection::' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル 'Data::Win::Adodb::TADODataSet::' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル 'Data::Win::Adodb::TADOCommand::' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Win::Adodb::TADOConnection::SetConnectionString(System::WideString)' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TCustomConnection::Open()' が C:\DENTAL\PKG\DHKLIB.LIB|DblKan から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Win::Adodb::TADOCommand::SetConnection(Data::Win::Adodb::TADOConnection * const)' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TDataSet::Close()' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Win::Adodb::TCustomADODataSet::SetCommandType(Data::Win::Adodb::TCommandType)' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Win::Adodb::TCustomADODataSet::SetCommandText(System::WideString)' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TDataSet::Open()' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TFields::FieldByName(System::UnicodeString)' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TDataSet::Next()' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TCustomConnection::Close()' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TFields::FieldByNumber(int)' が C:\DENTAL\PKG\DHMLIB.LIB|DblMas から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TDataSet::Append()' が C:\DENTAL\PKG\DHKLIB.LIB|DblKan から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Db::TDataSet::Edit()' が C:\DENTAL\PKG\DHKLIB.LIB|DblKan から参照されています
[ilink32 エラー] Error: 未解決の外部シンボル '__fastcall Data::Win::Adodb::TADOCommand::Execute()' が C:\DENTAL\PKG\DHKLIB.LIB|DblKan から参照されています
[ilink32 エラー] Error: リンクを実行できません


該当のユニットの一部です。
DblMas.h

・・・・・・・・
#include <ADODB.hpp>
#include <Db.hpp>
・・・・・・・・
class TDblMaster : public TDataModule
{
__published: // IDE 管理のコンポーネント
TADOConnection *pobConn;
TADODataSet *pobDataSet;
TADOCommand *pobCmd;

・・・・・・・・

また、現在使用しているPCにはWindows DAC6.3が入っています。
情報不足の部分があるかもしれませんが、ご回答よろしくお願い致します。
Hikaru FUKUSHI

Posts: 65
Registered: 11/11/02
Re: C++Builder10.1データアクセス部分でエラー
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 17, 2016 1:33 AM   in response to: 朋則 北山 in response to: 朋則 北山
北山さん、こんばんは。福士です。回答がつかないようなので…。

ビルド時に以下のエラーが発生します。

C++Builderは詳しくないのですが、Delphiでは古いバージョンのプロジェクトを
そのまま新しいバージョンのIDEで開いて移行すると色々問題が出るため、ソース
ファイルはそのままでプロジェクトのみ新規作成するほうがよいとされています。
このケースでも新しくプロジェクトを作成し、そこに必要なユニット(cppファイル)を
追加していくようにしたほうがよいのではないでしょうか。

# ちなみに新規にC++BuilderのVCLプロジェクトを作成し、メインフォームに
# TADOConnection、TADODataSet、TADOCommandだけを配置したものはプロジェクト
# オプションなどを変更しなくてもそのまま正常にコンパイル、リンクできます。

あと例のユニットスコープの導入の話がありますので、
#include <ADODB.hpp>
#include <Db.hpp>


#include <Data.DB.hpp>
#include <Data.Win.ADODB.hpp>

となっているべきです。

全然回答になっていないような気もしますが、参考にしてください。

--
東洋テクニカルシステム株式会社 システム開発部 福士 光
Hikaru Fukushi (Toyo Technical System Inc.)
mailto:fukushi@tts-inc.co.jp
朋則 北山

Posts: 22
Registered: 8/14/15
Re: C++Builder10.1データアクセス部分でエラー
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 18, 2016 5:27 PM   in response to: 朋則 北山 in response to: 朋則 北山
いつもご回答いただきましてありがとうございます。
ご指摘いただいた内容は対応いたしましたが、
まだエラーが続いている状態です。

調査継続いたします。
akira uemura

Posts: 7
Registered: 3/7/01
Re: C++Builder10.1データアクセス部分でエラー
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 19, 2016 6:13 PM   in response to: 朋則 北山 in response to: 朋則 北山
朋則 北山 wrote:
いつもご回答いただきましてありがとうございます。
ご指摘いただいた内容は対応いたしましたが、
まだエラーが続いている状態です。

調査継続いたします。

C++Builderはもうずっと触ってないので外してるかもしれませんが
プロジェクトの形として、DBアクセスの部分(ADOとか)をパッケージとしてプロジェクトの外に出してる形になってるんでしょうか?
だとすると、ADOとかその辺りのコンポーネントを配置した時に自動的に追加される、LIBへのリンクが追加されないのでエラーになってるんじゃないでしょうか。

リンカオプションで、libの追加が出来るなら追加するか、DblMas.hの中に
#pragma comment(lib, "adortl.lib")
とか他にも必要なlibがあればそれを追加してみたら解決するかもしれません。

あるいは、フォームにADO(dbGo)でしたっけかのコンポーネントを1個配置してコンパイルすると良いかもしれません。

Edited by: akira uemura on Oct 20, 2016 10:16 AM
朋則 北山

Posts: 22
Registered: 8/14/15
Re: C++Builder10.1データアクセス部分でエラー
Click to report abuse...   Click to reply to this thread Reply
  Posted: Oct 20, 2016 2:19 AM   in response to: 朋則 北山 in response to: 朋則 北山
uemura 様

あるいは、フォームにADO(dbGo)でしたっけかのコンポーネントを1個配置してコンパイルすると良いかもしれません。

こちらの対応にて、データアクセス部分のエラーが解消しました。

ありがとうございました。
Legend
Helpful Answer (5 pts)
Correct Answer (10 pts)

Server Response from: ETNAJIVE02