Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Delphi2010 und ADO (https://www.delphipraxis.net/149146-delphi2010-und-ado.html)

roth 15. Mär 2010 14:02

Datenbank: ODBC • Zugriff über: ADO

Delphi2010 und ADO
 
Guten Tag,

Es geht um eine Applikation mit deren ich auf eine ODBC Datenbank zugreife.
Wenn ich die neu mit delphi 2010 kompiliere geht auf dem lokalen Entwickler PC alles ohne Probleme.
Wenn ich das Programm auf einen Win2000 Server kopiere und dort laufen lassen will kann es keine Verbindung über ADO zur DB machen. Folgender Fehler kommt:
Zitat:


exception class : EIntfCastError
exception message : Interface not supported.

main thread ($e70):
00000000 ???
0045305f PImporter.exe madExcept MyRaiseExceptProc
0040464a PImporter.exe System ErrorAt
005e6e86 PImporter.exe ADODB TADOCommand.Create
005e7b59 PImporter.exe ADODB TCustomADODataSet.Create
005f0793 PImporter.exe ADODB TADOQuery.Create
Ich nehme an es liegt an einer DLL welche delphi2010 mit installiert hat. Kann mir da jemand weiterhelfen?

Danke

mikhal 15. Mär 2010 14:31

Re: Delphi2010 und ADO
 
Mal ins Blaue geschossen:

Entwicklerrechner verfügt über MDAC 2.8, Windows 2000 Server über MDAC 2.1 oder 2.5?

Falscher ODBC-Treiber auf dem Server?

Grüße
Mikhal

Edit: MDAX brrrr...

Sir Rufo 15. Mär 2010 14:32

Re: Delphi2010 und ADO
 
Bau das mal in dein Projekt (oder auch ein Testprojekt) ein und erstelle an dem Zielrechner damit den ConnectionsString.

Dann siehst du auch sofort, welche ADO-Provider dort vorhanden sind.

Delphi-Quellcode:
uses
  Classes,
  SysUtils,
  OleDB,
  ComObj,
  ActiveX;

function ADOConnectionString(ParentHandle: THandle; InitialString: WideString; out NewString: string): Boolean;
var
  DataInit: IDataInitialize;
  DBPrompt: IDBPromptInitialize;
  DataSource: IUnknown;
  InitStr: PWideChar;
begin
  Result  := False;
  DataInit := CreateComObject(CLSID_DataLinks) as IDataInitialize;
  if InitialString <> '' then
    DataInit.GetDataSource(nil, CLSCTX_INPROC_SERVER, PWideChar(InitialString),
      IUnknown, DataSource);
  DBPrompt := CreateComObject(CLSID_DataLinks) as IDBPromptInitialize;
  if Succeeded(DBPrompt.PromptDataSource(nil, ParentHandle,
    DBPROMPTOPTIONS_PROPERTYSHEET, 0, nil, nil, IUnknown, DataSource)) then
  begin
    InitStr := nil;
    DataInit.GetInitializationString(DataSource, True, InitStr);
    NewString := InitStr;
    Result   := True;
  end;
end;

roth 15. Mär 2010 15:26

Re: Delphi2010 und ADO
 
Zitat:

Mal ins Blaue geschossen:

Entwicklerrechner verfügt über MDAC 2.8, Windows 2000 Server über MDAC 2.1 oder 2.5?
Würde mal sagen ins schwarze getroffen ;)

MDAC 2.5 war auf dem Server installiert! Nach dem update funktioniert es nun... danke!!


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz