Я использую SQLAPI ++ для подключения к Oracle из моего приложения Visual C ++.Я легко могу подключиться к базе данных из VC ++, только когда я делаю это в режиме консоли Win32.
Но когда я пытаюсь сделать то же самое в Windows Forms Project, я получаю следующие ошибки компоновщика.Может ли кто-нибудь помочь мне с этим, потому что мне нужно, чтобы значения, введенные в форму, были вставлены в базу данных.
Мой код:
#include <SQLAPI.h>
#include "stdafx.h"
#include "Form1.h"
#include <stdio.h>
using namespace sqlapi;
[STAThreadAttribute]
int main(array<System::String ^> ^args)
{
SAConnection con;
SACommand cmd;
try
{
con.Connect("", "scott", "tiger", SA_Oracle_Client);
cmd.setConnection(&con);
cmd.setCommandText(
"Create table test_tbl(fid integer, fvarchar20 varchar(20), fblob blob)");
cmd.Execute();
cmd.setCommandText(
"Insert into test_tbl(fid, fvarchar20) values (1, 'Some string (1)')");
cmd.Execute();
con.Commit();
}
catch(SAException &x)
{
try
{
con.Rollback();
}
catch(SAException &)
{
}
}
// Enabling Windows XP visual effects before any controls are created
Application::EnableVisualStyles();
Application::SetCompatibleTextRenderingDefault(false);
Application::Run(gcnew Form1());
return 0;
}
И ошибки, которые я получаю,
sqlapi.obj : error LNK2028: unresolved token (0A000010) "public: void __clrcall SAConnection::Rollback(void)" (?Rollback@SAConnection@@$$FQAMXXZ) referenced in function __catch$?main@@$$HYMHP$01AP$AAVString@System@@@Z$0
sqlapi.obj : error LNK2028: unresolved token (0A000016) "public: void __clrcall SAConnection::Commit(void)" (?Commit@SAConnection@@$$FQAMXXZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2028: unresolved token (0A000018) "public: void __clrcall SACommand::setCommandText(class SAString const &,enum SACommandType_t)" (?setCommandText@SACommand@@$$FQAMXABVSAString@@W4SACommandType_t@@@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2028: unresolved token (0A000019) "public: void __clrcall SACommand::setConnection(class SAConnection *)" (?setConnection@SACommand@@$$FQAMXPAVSAConnection@@@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2028: unresolved token (0A00001A) "public: __clrcall SAString::~SAString(void)" (??1SAString@@$$FQAM@XZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2028: unresolved token (0A00001B) "public: __clrcall SAString::SAString(char const *)" (??0SAString@@$$FQAM@PBD@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2028: unresolved token (0A00001C) "public: void __clrcall SAConnection::Connect(class SAString const &,class SAString const &,class SAString const &,enum SAClient_t,void (__cdecl*)(class SAConnection &,enum SAConnectionHandlerType_t))" (?Connect@SAConnection@@$$FQAMXABVSAString@@00W4SAClient_t@@P6AXAAV1@W4SAConnectionHandlerType_t@@@Z@Z) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2028: unresolved token (0A00001D) "public: virtual __clrcall SACommand::~SACommand(void)" (??1SACommand@@$$FUAM@XZ) referenced in function __catch$?main@@$$HYMHP$01AP$AAVString@System@@@Z$0
sqlapi.obj : error LNK2028: unresolved token (0A00001E) "public: __clrcall SACommand::SACommand(void)" (??0SACommand@@$$FQAM@XZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2028: unresolved token (0A00001F) "public: virtual __clrcall SAConnection::~SAConnection(void)" (??1SAConnection@@$$FUAM@XZ) referenced in function __catch$?main@@$$HYMHP$01AP$AAVString@System@@@Z$0
sqlapi.obj : error LNK2028: unresolved token (0A000020) "public: __clrcall SAConnection::SAConnection(void)" (??0SAConnection@@$$FQAM@XZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
sqlapi.obj : error LNK2019: unresolved external symbol "public: virtual __clrcall SAConnection::~SAConnection(void)" (??1SAConnection@@$$FUAM@XZ) referenced in function __catch$?main@@$$HYMHP$01AP$AAVString@System@@@Z$0
sqlapi.obj : error LNK2019: unresolved external symbol "public: virtual __clrcall SACommand::~SACommand(void)" (??1SACommand@@$$FUAM@XZ) referenced in function __catch$?main@@$$HYMHP$01AP$AAVString@System@@@Z$0
sqlapi.obj : error LNK2019: unresolved external symbol "public: void __clrcall SAConnection::Rollback(void)" (?Rollback@SAConnection@@$$FQAMXXZ) referenced in function __catch$?main@@$$HYMHP$01AP$AAVString@System@@@Z$0
sqlapi.obj : error LNK2019: unresolved external symbol "public: void __clrcall SAConnection::Commit(void)" (?Commit@SAConnection@@$$FQAMXXZ) referenced in function "int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP$01AP$AAVString@System@@@Z)
Я не получаю никаких ошибок в режиме консоли Win32.Я даже добавил библиотеки в дополнительных зависимостях.