Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DirectMysql-Problem (https://www.delphipraxis.net/108191-directmysql-problem.html)

theroad 8. Feb 2008 15:41

Datenbank: MYSQL • Version: n/a • Zugriff über: DirectMYSQL-Units

DirectMysql-Problem
 
Hi Leute,

undzwar es ist folgendes:
ich nutze die DIRECTMYSQL-UNITS um auf eine SQL-DB zuzugreifen.

Verbinden und Datenbank auswählen klappt alles.

Meine Ergebnisse (Userliste, username usw)
lasse ich mir in einem StringGrid ausgeben.

Ich kann aber nichts daraus löschen? also aus der DB. SO habe ich es Probiert:

Delphi-Quellcode:
procedure TForm2.Button6Click(Sender: TObject);
begin
idx := InputBox('User löschen', 'Bitte UserID eingeben', '');
FResult := FMysql.query(idx, true, ex);

if idx = '' then // wenn nix eingegeben, abbrechen
begin
showmessage('Keine UserID eingegeben');
exit;
end else
 begin // ansonsten weiter
  s := 'DELETE FROM ' + ComboBox1.Text + ' WHERE userid = "'+idx+'"';
  FResult := FMysql.query(s, true, ex);
  if assigned(FResult) then
  begin
    TableContent; // neue ergebnisse anzeigen
  end;
end;
end;

mkinzler 8. Feb 2008 15:44

Re: DirectMysql-Problem
 
Kommt ein Fehler? Wird wirklich nicht gelöscht oder wird nur die Anzeige nicht aktualisiert?

theroad 8. Feb 2008 15:56

Re: DirectMysql-Problem
 
Es wird einfach nciht gelöscht die anzeige wird aktualisiert, ist kein Problem.

An der InputBox kann es nicht liegen den ich habe auch schon folgendes probiert:
Delphi-Quellcode:
 s := 'DELETE FROM meine_tabelle WHERE userid = 98';

gsmgrufti 8. Feb 2008 16:20

Re: DirectMysql-Problem
 
FResult hast du erzeugt ?
Delphi-Quellcode:
 FResult:=uMysqlClient.TMysqlResult.create(Fmysql,rtStored);

Tommy1988 8. Feb 2008 16:22

Re: DirectMysql-Problem
 
Ich habe das alles mal kopiert (sqlunits natürlich eingebunden)

=> Abfragen
=> Datenbank wechseln

usw funktioniert alles,

löschen leider nicht

gsmgrufti 8. Feb 2008 16:31

Re: DirectMysql-Problem
 
Hab gerade gesehen, daß der Abschluß fehlt
Delphi-Quellcode:
s := 'DELETE FROM meine_tabelle WHERE userid = 98';
Delphi-Quellcode:
s := 'DELETE FROM meine_tabelle WHERE userid = 98;';
<EDIT>
Lass dir auch mal fmysql.lasterror anzeigen (ich hoffe, du versuchst nicht mit einem Read-Account zu löschen)

theroad 8. Feb 2008 16:39

Re: DirectMysql-Problem
 
Edit:
Delphi-Quellcode:
procedure TForm2.Button6Click(Sender: TObject);
begin
idx := InputBox('User löschen', 'Bitte UserID eingeben', '');
FResult := FMysql.query(idx, true, ex);

if idx = '' then
begin
showmessage('Keine UserID eingegeben');
exit;
end else
 begin
  s := 'DELETE FROM Pendlerboerse WHERE userid = 98;';
  FResult := FMysql.query(s, true, ex);
  if assigned(FResult) then
  begin
    TableContent;
  end else
   begin
     showmessage(fmysql.lasterror);
   end;
 end;
end;
Dieser Code sagt: "Table 'Pendlerboerse.Penlderboerse' doensn't exist"

(?!)

DeddyH 8. Feb 2008 16:50

Re: DirectMysql-Problem
 
Ist Pendlerboerse der Name der Datenbank oder der Tabelle?

gsmgrufti 8. Feb 2008 16:51

Re: DirectMysql-Problem
 
Dann hast du vorher nicht die DB selektiert, die musst du dann angeben, bzw. die Tabelle ?.

Delphi-Quellcode:
procedure TForm2.Button6Click(Sender: TObject);
var
 ex:boolean;
begin
idx := InputBox('User löschen', 'Bitte UserID eingeben', '');
if trim(idx) = '' then
begin
 showmessage('Keine UserID eingegeben');
end else
begin
  FResult :=uMysqlClient.TMysqlResult.create(Fmysql,rtStored);
  s := 'DELETE FROM <DB>.<TABLE> WHERE userid ='+idx+';';
  FResult := FMysql.query(s, true, ex);
  if ex then
  begin
    TableContent;
{ Hier vielleicht noch Fresult auswerten
   if FResult<>nil then
   begin
     FResult.First;
         ....
 
}

  end else showmessage(fmysql.lasterror);
  FResult.free;
end;

theroad 8. Feb 2008 21:59

Re: DirectMysql-Problem
 
Danke an DaddyH ich ahbe nicht die Tabelle abgeben gehabt sondern die Datenbank :P Anfängerglücl xD
also dafür schonmal danke

jezt habe ich aber ein anderes Problem:
Delphi-Quellcode:
  if combo = 'usertables' then
  q := 'SELECT userid, userlogin, userprename, userlastname FROM portal_usertable';

  if combo = 'connections' then
     q := 'SELECT id, userid, start_other, end_other FROM pn_connections';
combo ist die variabele von einer combobox das mit der variabele funktioniert auch alles aber ich kann da dan auswählen zwischen usertables und connections aber ich kann nur usertables nutzen aber es ist alles richtig habe alle tabellennamen und spaltennamen überprüft oder geht das garnciht mit einer IF abfrage??

Vielen Dank im voraus


Alle Zeitangaben in WEZ +1. Es ist jetzt 02:09 Uhr.
Seite 1 von 2  1 2      

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