![]() |
Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
@all
Hallo, kann mir jemand einen Tipp geben wie man unter .net (ASP.NET Webservice) auf eine bestehende ODBC-Datenbankverbindung zu einer MYSQL Datenbank zugreifen kann. Grüße aus dem Rheinland, Highway |
Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
Moin moin,
DU kannst Dir bei Microsoft kostenlos einen ODBC.Net-Provider herunterladen ( ![]() ![]() |
Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
@r_kerber
Hallo, danke für deine Hilfe, aber ich komme immer noch nicht klar. Ich habe denn .net-Provider herunter geladen und installiert. Ich finde diesen aber nicht in der Entwicklungsumgebung wieder. In einer VCL-Anwendung habe ich immer nur eine ADO-Connection auf die entsprechenden MySQL-ODBC Verbindung verbunden. Beispiel:
Delphi-Quellcode:
Über den ConnectString wird über den eingerichteten ODBC-Treiber (Original von MySQL) auf die Datenbank zugegriffen.
Function xyz: TDataRecord;
var AdoConnection: TAdoConnection; Query: TAdoQuery; begin AdoConnection := TAdoConnection.Create(Self); AdoQuery := TAdoQuery.Create(Self); try AdoConnection.ConnectString := '......'; AdoConnection.Open; AdoQuery.Sql.Text := 'Select * from table'; AdoQuery.ExecSql; Result.xyz := AdoQuery.FieldByName('....'). AsString; finally AdoQuery.Free; AdoConnection.Free; end; end; Das funktioniert bei VCL-Anwendungen prima. Wie realisiert man eine solche Verbindung unter .net? Muss ich in der Entwicklungsumgebung noch etwas importieren/installieren damit der Provider erkannt wird? Ich bin noch nicht so vertraut mit der Delphi 2005 Entwicklungsumgebung. Habe bisher nur Delphi 7 verwendet, damit ist jede Menge Neues auf mich zugekommen. Grüße, Guido |
Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
Zitat:
![]() |
Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
Ich würde einen nativen MySQL ADO.NET-Treiber verwenden und ODBC und MyODBC außen vor lassen. Einen professionalen Treiber gibt es bei
![]() ![]() |
Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
Wie geht das?
Sollte überall gleich sein... Diese Interfaces sind es was ein paar Klassen zu einem ADO.Net Provider machen, nutzt du nur die hast du auch in .Net 1.1 einen Hauch von DB-unabhängigkeit:
Code:
Das hier...
using(IDbConnection connection = new DeineConenctionClass("connectionstring"))
using(IDbCommand command = connection.CreateCommand()) { command.CommandText = "SELECT...WHERE X = :Y"; IDataParameter parameter = command.CreateParameter(); command.Parameters.Add(parameter); parameter.PrameterName = "Y"; using(IdataReader reader = command.ExecuteReader()) { while (reader.Read()) { ... } } }
Code:
Wäre in Delphi:
using(IDbCommand command = connection.CreateCommand())
{ }
Delphi-Quellcode:
Nie das Dispose() vergessen! Wenn deine Komponenten Fnalizer besitzen, hast du zwar kein MemLeak, aber Finalizer in einem WebService sind alles andere als witzig. Haben sie keinen, hättest du ein MemLeak! :shock:
var
command : IDbCommand; begin command := connection.CreateCommand() try finally Dispose(); end; end; |
Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
@all
Vielen Dank für die wohlgemeinte Hilfe! Hat alles nicht zu Erfolg geführt, aber ich habe eine alternative Lösung die ich nicht vorenthalten möchte.
Delphi-Quellcode:
Die Routine ist in eine ASP.NET Webservice Application eingebettet und liefert auch die entsprechenden Ergebnisse.
function TWebService1.GetPilot(Id: Integer):WideString;
var Pilot: WideString; I: Integer; begin OdbcConnection2.ConnectionString := ConnectString; OdbcConnection2.Open; OdbcDataAdapter1.SelectCommand.Connection := OdbcConnection2; OdbcDataAdapter1.SelectCommand.CommandText := 'select * from web94db1.flight_log'; OdbcDataAdapter1.Fill(DataSet1,'flight_log'); Pilot := ''; For I := 0 to DataSet1.Tables.Item['flight_log'].Rows.Count -1 do begin Pilot := Pilot + DataSet1.Tables.Item['flight_log'].Rows.Item[I].Item['Pilot'].ToString + #13; end; Result := Pilot; end; Etwas verwundert bin ich über das komplexe Abfrage Statement. Zum nachprüfen: Der Service läuft zur Zeit unter ![]() Die passend WSDL-Definition gibt's unter: ![]() Nochmals Dank und Grüße, Highway |
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:00 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz