Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi SQL LogIn (https://www.delphipraxis.net/135339-sql-login.html)

MaToBe 9. Jun 2009 11:10

Re: SQL LogIn
 
ja komme ich.

€: ich sehe gerade das es einen fehler gibt, wenn im Admin Tool von XAMPP den Server stoppen will... vllt liegts daran.

DeddyH 9. Jun 2009 11:12

Re: SQL LogIn
 
Allheilmittel: einfach mal den Rechner neu starten und schauen, ob es wieder geht.

MaToBe 9. Jun 2009 11:52

Re: SQL LogIn
 
nein geht immer noch nicht. ich schätze mein xampp hat irgendeinen fehler.

ich habe auch einen richtigen Webserver bei candan.eu

Kann ich die Adresse "web432.can200.de" als Host benutzen, da funktioniert es nämlich auch nicht...

DeddyH 9. Jun 2009 11:59

Re: SQL LogIn
 
Die meisten Hoster lassen keine DB-Zugriffe von außen zu.

MaToBe 9. Jun 2009 12:39

Re: SQL LogIn
 
ich habe XaMPP neu aufgesetzt, und nach 3 weiteren dubiosen fehlermeldungen geht es jetzt ... mal schaun wie lange noch. Danke

MaToBe 9. Jun 2009 17:46

Re: SQL LogIn
 
muss mich hier doch noch mal melden.

Problem: Etwa nur jedes 3te mal beim Verbinden zur SQL Datenbank per Button kommt die Nachricht "Verbindung erfolgreich" und selbst dann bin ich mir nicht sicher ob es geklappt hat.

Denn auch bei "Verbindung erfolgreich" klappt das Insert nicht.

Delphi-Quellcode:
var
      SQLServer : PAnsiChar;
      SQLBenutzer : PAnsiChar;
      SQLPasswort : PAnsiChar;
      SQLDatenbank : PAnsiChar;

...
    SQLServer := PAnsiChar(AnsiString(edtServernameSQL.Text));
    SQLBenutzer := PAnsiChar(AnsiString(edtBenutzernameSQL.Text));
    SQLPasswort := PAnsiChar(AnsiString(edtPasswortSQL.Text));
    SQLDatenbank := PAnsiChar(AnsiString(edtDatenbankSQL.Text));
...


procedure TfrmSQL.SqlVerbindungON;
begin
  mySqlConnect := mysql_init(nil);
  if mySqlConnect = nil then
  begin
    ShowMessage('Nicht genug freier Speicher, um Verbindungsdeskriptor zu initialisieren');
    Exit;
  end;


  if mysql_real_connect(mySqlConnect, SQLServer, SQLBenutzer, SQLPasswort, SQLDatenbank, 3306, nil, 0) = nil then
  begin
    ShowMessage('Die Verbindung konnte nicht hergestellt werden. Ursache: ' + mysql_error(mySqlConnect));
    Exit;
  end;

  ShowMessage('Verbindung hergestellt');

end;

procedure TfrmSQL.SqlVerbindungOFF;
begin
    mysql_close(mySqlConnect);
end;

//Insert Procedure
procedure TfrmSQL.SqlInsert(Tabelle : string; Daten : string);
var query : PChar;
begin
  query := PChar('INSERT INTO ' + Tabelle + ' VALUES ' + Daten);
  mysql_real_query(mySqlConnect, PAnsiChar(AnsiString(query)), Length(query));
end;

//Aufruf der Insert Procedure
procedure TfrmMain.Button1Click(Sender: TObject);
begin
    frmSQL.SqlVerbindungON;
    try
                                      //soll >> ('','Hallo') << darstellen
      frmSQL.SqlInsert('ausfaelle', '(' + #39 + '' + #39 + ',' + #39 + 'Hallo' + #39 + ')');
    finally
      frmSQL.SqlVerbindungOFF;
    end;
end;
Wäre super wenn jemand rausfinden könnte, warum nur bei durschnittlich jedem 3ten Verbindungsauftrag dieser auch gelingt.

MaToBe 10. Jun 2009 13:00

Re: SQL LogIn
 
ich habe ein paar weitere Versuche unternommen:


Variablen:
Delphi-Quellcode:
var
   Tabelle : string;
   Daten : string;
   ID : integer;
Funktioniert:
Delphi-Quellcode:
query := PChar('UPDATE ausfaelle SET Lehrer=''Peter'' WHERE ID=1');
mysql_real_query(mySqlConnect, PAnsiChar(AnsiString(query)), Length(query));
Funktioniert nicht:
Delphi-Quellcode:
query := PChar('UPDATE ' + Tabelle + ' SET ' + Daten + ' WHERE ID =' + inttostr(ID));
mysql_real_query(mySqlConnect, PAnsiChar(AnsiString(query)), Length(query));
Funktioniert:
Delphi-Quellcode:
query := PChar('DELETE FROM ausfaelle WHERE ID=11');
mysql_real_query(mySqlConnect, PAnsiChar(AnsiString(query)), Length(query));
Funktioniert nicht:
Delphi-Quellcode:
query := PChar('DELETE FROM ' + Tabelle + ' WHERE ID=' + inttostr(ID));
mysql_real_query(mySqlConnect, PAnsiChar(AnsiString(query)), Length(query));
Ich verstehe nicht wo mein Fehler liegt. Durch die Vergleiche seht ihr ja auch, worauf ich hinaus will, gibt es vielleicht eine intelligentere Lösung als mit " + Variable + " ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 00:16 Uhr.
Seite 2 von 2     12   

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