Article View: pl.comp.lang.delphi.bazy-danych
Article #82977Delphi i Oracle przez oci.dll
From: immo
Date: Tue, 27 Nov 2018 14:14
Date: Tue, 27 Nov 2018 14:14
51 lines
2671 bytes
2671 bytes
Witam,
Tak dla "zabawy" przenoszę sobie jeden obiekt z C++Buildera na Delphi.
Łączy się on z Oracle przez funkcje zawarte w oci.dll.
I ogólnie wszystko działało do momentu przepisania funkcji OCILogon
deklarowanej jako:
//sword OCILogon (OCIEnv *envhp, OCIError *errhp, OCISvcCtx **svchp,
// const OraText *username, ub4 uname_len,
// const OraText *password, ub4 passwd_len,
// const OraText *dbname, ub4 dbname_len);
function OCILogon(
envhp: Pointer;
errhp: Pointer;
var svchp: Pointer;
username: Pointer;
uname_len: ub4;
password: Pointer;
passwd_len: ub4;
dbname: Pointer;
dbname_len: ub4
): sword; cdecl; external WINDOWS_DLL_LOCATION;
Niestety za nic nie chce mi to zadziałać w Delphi, pomimo że w C++Builderze działa poprawnie. W Delphi jako result dostaję zawsze -1.
Funkcję wywołuję tak:
_retCode := OCILogon(
OCIEnvHP,
OCIErrHP,
OCISrvCHP,
@_otu,
_otuL,
@_otp,
_otpL,
@_otd,
_otdL
);
Gdzie _otu, _otp, _otd to TByteArray
_otuL, _otpL, _otdL to ub4 (czyli LongInt).
OCIEnvHP, OCIErrHP i OCISrvCHP to pointery i pierwsze dwa są poprawnie ustawione przez OCIInitialize i OCIEnvInit.
Czy ktoś się kiedykolwiek bawił w dostęp do oracla za pomocą oci.dll?
Nigdzie w necie nie mogę znaleźć jakichś przykładów użycia tego. A to co znalazłem, nie miało zdefiniowanego OCILogon.
Oczywiście jeśli "zabawa" nie przyniesie rezultatu to użyję ODACa, ale nie o to chodzi :)
pozdrawiam,
Przemek O.
Technical Details
Message-ID:
<a1ed2220-017c-491a-8e6e-fa3476b3a332@googlegroups.com>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!k10no78277itk.0!news-out.google.com!v141ni74ita.0!nntp.google.com!q69no78327itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mailShow Full Headers
Complete Article Headers
X-Received: by 2002:a6b:6418:: with SMTP id t24mr553225iog.3.1543328086763; Tue, 27 Nov 2018 06:14:46 -0800 (PST) X-Received: by 2002:a9d:24c3:: with SMTP id z61mr12456ota.1.1543328086457; Tue, 27 Nov 2018 06:14:46 -0800 (PST) Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.icm.edu.pl!fu-berlin.de!k10no78277itk.0!news-out.google.com!v141ni74ita.0!nntp.google.com!q69no78327itb.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: pl.comp.lang.delphi.bazy-danych Date: Tue, 27 Nov 2018 06:14:46 -0800 (PST) Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=77.65.27.242; posting-account=uWBjDgoAAACxkgIP6dtE4dpCnc16V86n NNTP-Posting-Host: 77.65.27.242 User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: <a1ed2220-017c-491a-8e6e-fa3476b3a332@googlegroups.com> Subject: Delphi i Oracle przez oci.dll From: immo <przemek-o@soft-system.pl> Injection-Date: Tue, 27 Nov 2018 14:14:46 +0000 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit