Delphi-код не будет сохранен в базе данных MySQL - PullRequest
0 голосов
/ 12 марта 2019

Хорошо, я из C # фона.Это не сохранилось в таблице базы данных Mysql.Я изо всех сил пытался заставить это общаться с базой данных, но это не вставляло в Таблицу базы данных.он просто показывает окно сообщения, но когда я обновляюсь, в базе данных ничего не появляется.Код выглядит следующим образом

unit mysqlConn;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, sqldb, mysql56conn, Forms, Controls, Graphics,
  Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    MySQL56Connection1: TMySQL56Connection;
    SQLQuery1: TSQLQuery;
    SQLTransaction1: TSQLTransaction;
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.ComboBox1Change(Sender: TObject);
begin

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SQLQuery1.SQL.Clear;
  SQLQuery1.SQL.Add('insert into people_info(name,email,telephone,gender)');
  SQLQuery1.SQL.Add('values(:name,:email,:telephone,:gender)');
  SQLQuery1.Params.ParamByName('name').AsString:=Edit1.Text;
  SQLQuery1.Params.ParamByName('email').AsString:=Edit2.Text;
  SQLQuery1.Params.ParamByName('telephone').AsString:=Edit3.Text;
  SQLQuery1.Params.ParamByName('gender').AsString:=Edit4.Text;
  SQLQuery1.ExecSQL;
  showmessage('Ok I am saved!');
end;

end.

Чего мне не хватает?

1 Ответ

2 голосов
/ 12 марта 2019

Я не добавил SQLTransaction1.Commit и, следовательно, сохранение в базу данных было пустым и недействительным. Код выглядит следующим образом:

unit mysqlConn;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, sqldb, mysql56conn, Forms, Controls, Graphics,
  Dialogs, StdCtrls;

type

  { TForm1 }

  TForm1 = class(TForm)
    Button1: TButton;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    MySQL56Connection1: TMySQL56Connection;
    SQLQuery1: TSQLQuery;
    SQLTransaction1: TSQLTransaction;
    procedure Button1Click(Sender: TObject);
    procedure ComboBox1Change(Sender: TObject);
  private

  public

  end;

var
  Form1: TForm1;

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.ComboBox1Change(Sender: TObject);
begin

end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SQLQuery1.SQL.Clear;
  SqlQuery1.SQL.text:='insert into people_info (name, email, telephone, gender) values (:name,:email,:telephone,:gender)';
  SqlQuery1.Params.ParamByName('name').AsString := Edit1.text;
  SqlQuery1.Params.ParamByName('email').AsString := Edit2.text;
  SqlQuery1.Params.ParamByName('telephone').AsString := Edit3.text;
  SqlQuery1.Params.ParamByName('gender').AsString := Edit4.text;
  SQLQuery1.ExecSQL;
  SQLTransaction1.Commit; // This saved to the database
  showmessage('Ok I am saved!');
  Edit1.Text := '';
  Edit2.Text := '';
  Edit3.Text := '';
  Edit4.Text := '';
end;

end.
...