AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Netzwerke Prism Webservice unter ASP.NET und Datenbankzugriff auf MYSQL
Thema durchsuchen
Ansicht
Themen-Optionen

Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

Ein Thema von Highway · begonnen am 9. Dez 2005 · letzter Beitrag vom 9. Dez 2005
Antwort Antwort
Highway

Registriert seit: 4. Apr 2004
Ort: Elsdorf
10 Beiträge
 
Delphi 2005 Architect
 
#1

Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

  Alt 9. Dez 2005, 00:16
@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
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#2

Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

  Alt 9. Dez 2005, 04:47
Moin moin,

DU kannst Dir bei Microsoft kostenlos einen ODBC.Net-Provider herunterladen (ODBC .NET-Datenprovider). Und die erforderlichen ConnectionStrings findest Du u.a. hier: MySQL Reference Manual - 23 MySQL Connectors
  Mit Zitat antworten Zitat
Highway

Registriert seit: 4. Apr 2004
Ort: Elsdorf
10 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

  Alt 9. Dez 2005, 11:09
@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:
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;
Über den ConnectString wird über den eingerichteten ODBC-Treiber (Original von MySQL) auf die Datenbank zugegriffen.
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
  Mit Zitat antworten Zitat
Benutzerbild von r_kerber
r_kerber

Registriert seit: 11. Feb 2003
Ort: Trittau
3.538 Beiträge
 
Delphi XE Professional
 
#4

Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

  Alt 9. Dez 2005, 11:17
Zitat von Highway:
Ich habe denn .net-Provider herunter geladen und installiert. Ich finde diesen aber nicht in der Entwicklungsumgebung wieder.
Das mußt Du manuell machen. Es gibt in der IDE einen entsprechenden Menüpunkt (Komponenten - Installierte .Net-Komponenten). Und wie man mit .Net-Providern auf Datenbanken zugreift hat Dr. Bob im BDN für den C#-Builder beschrieben: Using ADO.NET with C#Builder Personal by Bob Swart . So läuft das auch mit Delphi.Net und ODBC.Net
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.171 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

  Alt 9. Dez 2005, 12:10
Ich würde einen nativen MySQL ADO.NET-Treiber verwenden und ODBC und MyODBC außen vor lassen. Einen professionalen Treiber gibt es bei Core Labs oder für Nicht-Kommerzielle Entwicklung bei MySQL direkt.
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

  Alt 9. Dez 2005, 12:48
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:
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())
    {
       ...
    }
  }
}
Das hier...
Code:
using(IDbCommand command = connection.CreateCommand())

}
Wäre in Delphi:
Delphi-Quellcode:
var
  command : IDbCommand;
begin
  command := connection.CreateCommand()
  try
  finally
    Dispose();
  end;
end;
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!
Robert Giesecke
  Mit Zitat antworten Zitat
Highway

Registriert seit: 4. Apr 2004
Ort: Elsdorf
10 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Webservice unter ASP.NET und Datenbankzugriff auf MYSQL

  Alt 9. Dez 2005, 17:41
@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:
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;
Die Routine ist in eine ASP.NET Webservice Application eingebettet und liefert auch die entsprechenden Ergebnisse.

Etwas verwundert bin ich über das komplexe Abfrage Statement.

Zum nachprüfen:
Der Service läuft zur Zeit unter http://www.flightlogonline.wjk.de/cg...bservice1.asmx

Die passend WSDL-Definition gibt's unter:
http://www.flightlogonline.wjk.de/cg...ice1.asmx?wsdl

Nochmals Dank und Grüße,

Highway
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:44 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