Witajcie, mam następujący problem. Piszę prosty program do obsługi bazy danych i od samego problemu mam problemy.
O to błąd który dostaje:
A o to kod:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DBXpress, FMTBcd, StdCtrls, DB, SqlExpr, DCPmd5;
type
TForm1 = class(TForm)
SQLConnection1: TSQLConnection;
SQLDataSet1: TSQLDataSet;
Button1: TButton;
GroupBox1: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
Connected : Boolean;
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Poczatek funkcji hashujacej string na md5
function MD5(const S: String): String;
var
i: Byte;
digest: array[0..15] of Byte;
begin
with TDCP_md5.Create(nil) do
begin
Init;
Update(S[1], Length(S));
Final(digest);
Free;
end;
Result := '';
for i := 0 to Length(digest)-1 do
Result := Result + IntToHex(digest[i], 2);
Result := LowerCase(Result);
end;
// Koniec funkcji hashuj¹cej string na md5
procedure TForm1.Button1Click(Sender: TObject);
var
login:string[20];
haslo:string[32];
mysqlpassword:string[32];
begin
login:=Edit1.Text;
haslo:=Edit2.Text;
if Connected then Connected := False else Connected := True;
SQLConnection1.Connected := Connected;
SQLDataSet1.CommandText := 'SELECT id, haslo FROM users WHERE login="'+Edit1.Text+'"'; // zapytanie
// jak zamiast login dasz id to wszystko dziala
SQLDataSet1.Open; // odczytaj dane
Label3.Caption:=SQLDataSet1.FieldValues['haslo'].AsString;
SQLDataSet1.Close;
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
SQLConnection1.Connected := False;
end;
end.
Błąd występuję po wciśnięciu Buttona1 w następującej linii:
SQLDataSet1.CommandText := 'SELECT id, haslo FROM users WHERE login="'+Edit1.Text+'"'; // zapytanie
Gdy zamiast warunku login dam id, analogicznie zmieniając warunek z Edit1.Text na dowolną liczbę id wiersza znajdującego się w bazie to problem nie występuję.
Pozdrawiam,
Mateusz
dodanie znaczników <code class="delphi"> - fp