AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

ADOQuery - SQLQuery ??

Ein Thema von xReva · begonnen am 18. Apr 2017 · letzter Beitrag vom 24. Apr 2017
Antwort Antwort
Seite 4 von 6   « Erste     234 56      
xReva

Registriert seit: 15. Nov 2016
20 Beiträge
 
#31

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 19:03
http://prntscr.com/exylrv Da ist der Fehler zu sehen



Delphi-Quellcode:
unit try3;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Data.DB, Data.Win.ADODB,ShellAPI,
  Data.FMTBcd, Data.SqlExpr;

type
  TForm1 = class(TForm)
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Edit1: TEdit;
    ADOConnection1: TADOConnection;
    ADOQuery1: TADOQuery;
    Button1: TButton;
    Button2: TButton;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Edit7: TEdit;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from taccounts where susername='''+edit1.Text+''' and suserpass='''+edit2.Text+''' ');
ADOQuery1.Open;
if not ADOQuery1.Eof then
begin
ShellExecute(Application.Handle, 'open', PChar('C:\Program Files (x86)\Internet Explorer\iexplore.exe'), nil, nil, SW_NORMAL);
end
else


ShowMessage('Falscher Benutzername oder Password!');
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
  ADOQuery1.ParamCheck := true; // Bewirkt, dass die Parameter direkt 'initialisiert' = Erstellt werden!!

  ADOQuery1.SQL.Text:='INSERT into taccounts (nEMID,sUsername,sUserPass,sUserPassSalt,sEmail,nAuthID,sIP) ' +
    'Values (:nEMID,:sUsername,:sUserPass,:sUserPassSalt,:email,:AuthID,:sIP)' ;

{ Brauchst Du nicht wegen ADOQuery1.ParamCheck := true
  ADOQuery1.Sql.Clear;
  ADOQuery1.Parameter.Clear;
  ADOQuery1.Parameter.CreateParam(ftString, 'Username', ptInputOutput);
  ADOQuery1.Parameter.CreateParam(ftString, 'UserPass', ptInputOutput);
  ADOQuery1.Parameter.CreateParam(ftString, 'UserPassSalt', ptInputOutput);
  ADOQuery1.Parameter.CreateParam(ftString, 'email', ptInputOutput);
  ADOQuery1.Parameter.CreateParam(ftInteger, 'AuthID', ptInputOutput);
  ADOQuery1.Parameter.CreateParam(ftString, 'sIP', ptInputOutput);
}


  ADOQuery1.Parameters.ParamByName('nEMID').Value := '4'; // Hier fehlte das 's', siehe dein SQL Values (:sUsername
  ADOQuery1.Parameters.ParamByName('sUsername').Value := edit3.text; // Hier fehlte das 's', siehe dein SQL Values (:sUsername
  ADOQuery1.Parameters.ParamByName('sUserPass').Value := edit4.text;
  ADOQuery1.Parameters.ParamByName('sUserPassSalt').Value := edit5.text;
  ADOQuery1.Parameters.ParamByName('email').Value := edit6.text;
  ADOQuery1.Parameters.ParamByName('AuthID').Value := '4';
  ADOQuery1.Parameters.ParamByName('sIP').Value := edit7.text; // Hier stand 'email' statt das 'sIP'

  if (ADOQuery1.ExecSQL() = 1) then begin // Prüfen, ob der Insert erfolgreich war

    ADOQuery1.SQL.Clear;
// ADOQuery1.Parameter.Clear; // Wird beim löschen des SQL-Befehls direkt wieder entfernt...

    ADOQuery1.Open;



    ADOQuery1.Close;
  end;
end;




end.
  Mit Zitat antworten Zitat
HolgerX

Registriert seit: 10. Apr 2006
Ort: Leverkusen
961 Beiträge
 
Delphi 6 Professional
 
#32

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 19:09
Dann schaue DIr doch mal diese Zeilen an:

Delphi-Quellcode:

  if (ADOQuery1.ExecSQL() = 1) then begin // Prüfen, ob der Insert erfolgreich war

    ADOQuery1.SQL.Clear;
// ADOQuery1.Parameter.Clear; // Wird beim löschen des SQL-Befehls direkt wieder entfernt...

    ADOQuery1.Open;
    ADOQuery1.Close;
  end;
end;

Ich sag nur 'Clear' -> 'Open'!
Was soll denn da für ein SQL-Befehl geöffnet werden?

Wenn Du das nach dem dem ExecSQL nicht mehr brauchst, dann kannst Du es auch weglassen.
  Mit Zitat antworten Zitat
xReva

Registriert seit: 15. Nov 2016
20 Beiträge
 
#33

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 20:03
Oh man jetzt kriege ich diese Meldung : http://prntscr.com/exzfpl
  Mit Zitat antworten Zitat
nahpets
(Gast)

n/a Beiträge
 
#34

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 20:18
Mir ist nicht klar, was Du hiermit bezweckst:
Delphi-Quellcode:
 // Wurde ein Datensatz eingefügt?
 if (ADOQuery1.ExecSQL() = 1) then begin
    // Lösche das letzte SQL
    ADOQuery1.SQL.Clear;
    // und führe nun das nicht existierende SQL aus?
    ADOQuery1.Open;
    // Und schließe es sofort?
    ADOQuery1.Close;
  end;
Das Open setzt das Vorhandensein eines gültigen SQL-Statements voraus, kann daher nach einem ADOQuery1.SQL.Clear nur zu der von Dir erhaltenen Fehlermeldung führen, da dann kein SQL-Statement mehr vorhanden ist.
  Mit Zitat antworten Zitat
xReva

Registriert seit: 15. Nov 2016
20 Beiträge
 
#35

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 20:45
Also wenn ich das open und das close rausnehme kommt keine Fehlermeldung mehr allerdings passiert in der db auch nichts x.x
  Mit Zitat antworten Zitat
xReva

Registriert seit: 15. Nov 2016
20 Beiträge
 
#36

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 20:48
http://prntscr.com/ey01qv das ist die datenbank + source code
  Mit Zitat antworten Zitat
Benutzerbild von p80286
p80286

Registriert seit: 28. Apr 2008
Ort: Stolberg (Rhl)
6.659 Beiträge
 
FreePascal / Lazarus
 
#37

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 22:03
könnte es sein, daß da noch ein "commit" fehlt bzw. Autocommit nicht auf true steht?

Gruß
K-H
Programme gehorchen nicht Deinen Absichten sondern Deinen Anweisungen
R.E.D retired error detector
  Mit Zitat antworten Zitat
xReva

Registriert seit: 15. Nov 2016
20 Beiträge
 
#38

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 22:09
Wo finde ich denn Autocommit?
  Mit Zitat antworten Zitat
Poelser

Registriert seit: 21. Apr 2008
Ort: Europa
145 Beiträge
 
Delphi 10.4 Sydney
 
#39

AW: ADOQuery - SQLQuery ??

  Alt 18. Apr 2017, 22:36
In der Datenbank-Connection.

Bis denne,
Poelser
  Mit Zitat antworten Zitat
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.292 Beiträge
 
Delphi 12 Athens
 
#40

AW: ADOQuery - SQLQuery ??

  Alt 19. Apr 2017, 05:12
Moin...
@xReva: Warum hängst du die Screenshots nicht an den Beitrag an?
1. Irgendwann ist das Original verschwunden und der Beitrag ist nicht mehr vollständig.
2. Die meisten weigern sich Scripte auf der Internetseite in Übersee (automatisch) auszuführen um nur das Bild zu sehen.

zum Thema:
Diesen Teil verstehe ich von der Logik nicht:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
  ADOQuery1.SQL.Clear; // kann weg wenn du SQL.Text verwendest
  ADOQuery1.SQL.Add('select * from taccounts where susername='''+edit1.Text+''' and suserpass='''+edit2.Text+''' '); // besser Parameter und SQL.Text
  ADOQuery1.Open;
  if not ADOQuery1.Eof then // du erwartest nur einen Datensatz, warum die Bedingung auf EOF?
  begin
    // nur den Internetexplorer öffnen und nichts damit machen? Das könnte auch ohne Benutzernamen geschehen *grübel*
    ShellExecute(Application.Handle, 'open', PChar('C:\Program Files (x86)\Internet Explorer\iexplore.exe'), nil, nil, SW_NORMAL);
  end
  else
    ShowMessage('Falscher Benutzername oder Password!');
end;

Geändert von haentschman (19. Apr 2017 um 05:41 Uhr)
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 4 von 6   « Erste     234 56      

 

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 19:57 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