Einzelnen Beitrag anzeigen

m0sch3r

Registriert seit: 29. Mär 2004
121 Beiträge
 
Delphi 7 Enterprise
 
#1

Bekomme die TMYSqlResult einfach nicht zum laufen..

  Alt 18. Feb 2006, 18:26
Datenbank: MySQL • Version: 4.1.16 • Zugriff über: remote
Tach an alle.

Sitze seit mehreren Stunden, und komme nicht weiter.
Das Tutorial über die DirectMySQLObjectj hilft auch nicht weiter
Ich teste das alles im internen nezt habe ein Linux sql server laufen, man kann sich verbinden. die netstat anzeige zeigt wenn ich unter delphi debugge, das die sql verbindung in dem augenblick

MySQLResult := MySQLClient.query(abfrage, true, ABGelaufen);
zum server von mir besteht.!!!

aber die TmySQLResult ist immer nil.!!!! habe das SQL statemen direct gestest, funzt alles...!!!
komme echt nicht weiter bin für jede hilfe dankbar...)))

Die Classe wird im oncreate der hauptunit aufgerufen
Delphi-Quellcode:
//Die Classen die Mit Den einstellungen Arbeiten
      MySQLDatenbank:= TMySQLClass.Create;
und dann anschliesend per button (hauptform) aufgerufen

MySQLDatenbank.FGetUserIDFromSQL('User', 'Pass');

das ist die gesammte Classe


Delphi-Quellcode:
unit MySQLClass;

interface

uses
    classes, umysqlvio, uMysqlCT, uMysqlClient, uMysqlHelpers;


{$UnDef NEVERENABLEME}
{Note: has basically the same role as EXTRA_DEBUG in mysql and should not be enabled except for testing purposes}
{$Define HAVE_COMPRESS}
{this will actually include zlib code into the executable}
{$Define _WIN_}
{this will actually enable windows winsock imports}
{.$Define HAVE_SSL}
{this will actually include openssl calls into the executable and enable ssl communication}
{NOTE: you will need libeay32.dll and ssleay32.dll for ssl to work}



type
    TMySQLClass = class(TObject)
                      Protected
                    MySqlClient : TMYsqlClient;
                    MySqlResult : TMYSqlResult;

                      public
                  
                       constructor Create;
                    destructor Destroy;
                    function FGetUserIDFromSQL(ClientLogin, ClientPass: string): integer;
                        Procedure PDeleteFromSQL;
                        //Procedure PSaveToSQL;
                    end;


implementation

uses
    main, SysUtils, dialogs;


constructor TmySQLClass.Create;
begin
     inherited Create;
     MySQLClient := TmySqlClient.create;

     MySQLClient.Host := form1.DatabaseServerEdit.Text;
     MySQLClient.Port := strtoint(form1.DatabasePortEdit.text);
     MySQLClient.User := 'someuser'; //form1.LoginEdit.Text;
     MySQLClient.Password := 'somepass'; //form1.PassEdit.Text;
     MySQLClient.db := 'damned_db';
     MySQLClient.UnixSocket:= '';
     MySQLClient.UseNamedPipe:= false;
     MySQLClient.UseSSL := false;
     MySQLClient.Compress := true;
     MySQLClient.TrySockets:= false;

end;

destructor TmySQLClass.Destroy;
begin
    inherited Destroy;
    MySQLClient.destroy;

end;

Function TMySQLClass.FGetUserIDFromSQL(ClientLogin, ClientPass : String): integer;
var
    abfrage : string;
    AbGelaufen : Boolean;
    i : integer;
begin
       abfrage := 'select User_id, Login, Pass FROM benutzer WHERE Login='+ClientLogin;
      try
       if MySQLClient.connect then
          begin
          MySQLResult := MySQLClient.query(abfrage, true, ABGelaufen);
          if MySQLResult <> nil then
              begin
              for i:= 0 to MySQlResult.FieldsCount - 1 do
                  begin
                  showmessage(MySQLResult.FieldValue(i));

                  //result := die id
                  end; // for

          end; //if
       end // if
       else showmessage('Can t connect to Database Server '+ MySQLClient.LastError);
       finally
       MySqlClient.close;
       end; // try-finally
end;
  Mit Zitat antworten Zitat