АДО
8 отговора
251 прегледа
АДО
Здравейте.
Имам нужда от малко помощ.
За какво става дума...
имам един проект и в ного използвам ADO , какво правя , импортвам си dll-а така:
#import "c:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
ОК
обаче ще ми се наложи да използвам и адоХ
и аз разбира се отворих един хелп и копирах следното:
#import "c:\Program Files\Common Files\system\ado\msado15.dll"
#import "c:\Program Files\Common Files\system\ado\msadox.dll" no_namespace
Чудесно, обаче компилатора ми дава следното съобщение:
--------------------Configuration: s - Win32 Debug--------------------
Compiling...
StdAfx.cpp
\my_source\s\debug\msado15.tlh(409) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
\my_source\s\debug\msado15.tlh(1317) : error C2629: unexpected 'short ('
\my_source\s\debug\msado15.tlh(1317) : error C2238: unexpected token(s) preceding ';'
\my_source\s\debug\msadox.tlh(1201) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
Error executing cl.exe.
s.exe - 2 error(s), 2 warning(s)
////////////////////////////////////
пробвах различни варианти на no_namespace rename("EOF", "adoEOF") и no_namespace да ги слагам пред един от двата импорта обаче нищо.
Ако някои има идея как да използвам и двата dll-а моля да я сподели с мен.
Предварително благодаря.
Имам нужда от малко помощ.
За какво става дума...
имам един проект и в ного използвам ADO , какво правя , импортвам си dll-а така:
#import "c:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
ОК
обаче ще ми се наложи да използвам и адоХ
и аз разбира се отворих един хелп и копирах следното:
#import "c:\Program Files\Common Files\system\ado\msado15.dll"
#import "c:\Program Files\Common Files\system\ado\msadox.dll" no_namespace
Чудесно, обаче компилатора ми дава следното съобщение:
--------------------Configuration: s - Win32 Debug--------------------
Compiling...
StdAfx.cpp
\my_source\s\debug\msado15.tlh(409) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
\my_source\s\debug\msado15.tlh(1317) : error C2629: unexpected 'short ('
\my_source\s\debug\msado15.tlh(1317) : error C2238: unexpected token(s) preceding ';'
\my_source\s\debug\msadox.tlh(1201) : warning C4146: unary minus operator applied to unsigned type, result still unsigned
Error executing cl.exe.
s.exe - 2 error(s), 2 warning(s)
////////////////////////////////////
пробвах различни варианти на no_namespace rename("EOF", "adoEOF") и no_namespace да ги слагам пред един от двата импорта обаче нищо.
Ако някои има идея как да използвам и двата dll-а моля да я сподели с мен.
Предварително благодаря.
Re: АДО
Не знам за какви грешки ти реве компилатора, но
за предупрежденията единствения начин да се справиш с тях е да забраниш на компилатора да ги показва. Точно преди импорта:
#pragma warning(push)
#pragma warning(disable:4146)
недомислица на microsoft
за предупрежденията единствения начин да се справиш с тях е да забраниш на компилатора да ги показва. Точно преди импорта:
#pragma warning(push)
#pragma warning(disable:4146)
недомислица на microsoft
Re: АДО
Probvay da importnesh adox-a s
rename_namespace("ADO_X")
i ot tam natatuk vsichko, koeto polzvash ot adox shte si go vikash prez tota namespace, niama da se karat s ADO-to
Prosto idea, dano da pomogne
Enjoy
ukk
rename_namespace("ADO_X")
i ot tam natatuk vsichko, koeto polzvash ot adox shte si go vikash prez tota namespace, niama da se karat s ADO-to
Prosto idea, dano da pomogne
Enjoy
ukk
Re: АДО
бих тръгнал по пътя на Укк. импортирането на всяко тлб в отделен неймспейс е страшно добра идея.
грешки като "error C2629: unexpected 'short (' " често идват от недефинирани типове -- отвори генерираните .tlh файлове, в началото има коментар дали трябва да #import-неш някой друг тлб ресурс.
колкото до предложението на г-н Кодер да скриеш warning-а, вместо да проучиш какво го причинява -- мога само да замълча в погнуса.
ein heller Schein am Firmament
грешки като "error C2629: unexpected 'short (' " често идват от недефинирани типове -- отвори генерираните .tlh файлове, в началото има коментар дали трябва да #import-неш някой друг тлб ресурс.
колкото до предложението на г-н Кодер да скриеш warning-а, вместо да проучиш какво го причинява -- мога само да замълча в погнуса.
ein heller Schein am Firmament
Re: АДО
Пичаги, това го оправих :
////////////////
// works OK
#pragma warning (disable: 4146)
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll" no_namespace
НОООО,
установих че ми трябва и JetEngine, а тука вече става мноооого интересно:
импортвам си аз msjro.dll , обаче :))))) VC -то казва мнеее, немаастане
////////////////
// works OK
#pragma warning (disable: 4146)
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\System\ado\msjro.dll"
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll" no_namespace
А като гледам кода на VBasic изпадам в истерия , 5 реда код няма импорти няма глупости, но това е дълга темааааа
Направо откачих...
Излиза, че в едно приложение на Microsoft Visual C++ 6.0 е НЕВЪЗМОЖНО да се използват трите части на Microsoft ActiveX Data Objects : ADO, ADOX и JetEngine,
защо ?????????????
////////////////
// works OK
#pragma warning (disable: 4146)
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll" no_namespace
НОООО,
установих че ми трябва и JetEngine, а тука вече става мноооого интересно:
импортвам си аз msjro.dll , обаче :))))) VC -то казва мнеее, немаастане
////////////////
// works OK
#pragma warning (disable: 4146)
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\System\ado\msjro.dll"
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll" no_namespace
А като гледам кода на VBasic изпадам в истерия , 5 реда код няма импорти няма глупости, но това е дълга темааааа
Направо откачих...
Излиза, че в едно приложение на Microsoft Visual C++ 6.0 е НЕВЪЗМОЖНО да се използват трите части на Microsoft ActiveX Data Objects : ADO, ADOX и JetEngine,
защо ?????????????
Re: АДО
2 дена изгубих за да импортвам простотиите на Microsoft и за какво ??????????????????????????????????????????????????????????
Re: АДО
просто за допълнение:
при последното импортване както съм го описал по-горе всичко работи фокато не се опитам да изполвам класа IJetEngine по някакъв начин: VC казва че това е недефиниран тип, как да не се досетиш ??
при последното импортване както съм го описал по-горе всичко работи фокато не се опитам да изполвам класа IJetEngine по някакъв начин: VC казва че това е недефиниран тип, как да не се досетиш ??
Финал
Благодаря ви за мненията.
Накрая открих истината:
////////////////
//
#pragma warning (disable: 4146)
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
#import "D:\\Program Files\\Common Files\\System\\ado\\msjro.dll" no_namespace
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll"
...
rename_namespace("dl20")
Това е интерфейса на JetEngine:
IJetEnginePtr jet(__uuidof(JetEngine));
Накрая открих истината:
////////////////
//
#pragma warning (disable: 4146)
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
#import "D:\\Program Files\\Common Files\\System\\ado\\msjro.dll" no_namespace
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll"
...
rename_namespace("dl20")
Това е интерфейса на JetEngine:
IJetEnginePtr jet(__uuidof(JetEngine));
Финал
#pragma warning (disable: 4146)
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
#import "D:\\Program Files\\Common Files\\System\\ado\\msjro.dll" no_namespace
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll" rename_namespace("dl20")
#import "d:\Program Files\Common Files\system\ado\msadox.dll" rename_namespace("ADO_X") rename("EOF", "adoEOF")
#import "d:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")
#import "D:\\Program Files\\Common Files\\System\\ado\\msjro.dll" no_namespace
// Използва се за DataLinks диалога за избор на база данни.
#import "d:\program files\common files\system\ole db\oledb32.dll" rename_namespace("dl20")