Conexão MySQL sem componente

Delphi

18/04/2013

Pessoal. Bom Dia!

Gostaria de saber como fazer uma Conexão MySQL sem usar componente. Tipo zeos, dbexpress. Sem usar isso.

Conexão via código mesmo.

Alguma orientação?

Grato!

Carlos Rocha
Carlos Rocha

Carlos Rocha

Curtidas 0

Respostas

Frederico Brigatte***

Frederico Brigatte***

18/04/2013

Sim, poderia usar via ODBC com conector.
GOSTEI 0
Carlos Rocha

Carlos Rocha

18/04/2013

Oh amigo. Pensei em algo sem conector algum. Nem mesmo ODBC.

Apenas via código mesmo.

Tipo usando alguma unit nativa no delphi ou no lazarus.

Assim:
Declaro na clausula uses, a unit de conexão do delphi (ou lazarus) com o MySQL.
Após isso declaro uma variável do tipo da unit declarada.

E a partir daí eu monta a conexão via código.
A ideia eu tenho;. Mas não sei qual código usar.
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

18/04/2013

Rapaz, em que ponto isso é viável?
Você pode instanciar os mesmos componentes via código, TSQLConnection, TZConnection, etc.
GOSTEI 0
Carlos Rocha

Carlos Rocha

18/04/2013

Trabalho de faculdade.
GOSTEI 0
Carlos Rocha

Carlos Rocha

18/04/2013

Estou tentando assim no lazarus:

unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, mysql55conn;

type

  { TForm1 }

  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

var
  Form1: TForm1;
  conexao: mysql55conn.TMySQL55Connection

implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
  {
  conexao.Close;
  conexao.HostName:='localhost';
  conexao.port:=3306;
  conexao.UserName:='vini';
  conexao.Password:='alugue';
  conexao.DatabaseName:='alugueis';
  conexao.Open;
  }
end;

end.

Mas esta dando erro na hora de executar o close dentro do Formcreate
Comentei o conexão.Close e o erro continua

Erro?

Projeto teste elevou classe de execução' External:SIGSEGV'
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

18/04/2013

É por que nesse ponto, o objeto ainda não está instanciado. Vai precisar de um Create antes de tudo, para criar o objeto.
GOSTEI 0
Carlos Rocha

Carlos Rocha

18/04/2013

como vai criar o objeto?
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

18/04/2013

Cara, eu não sei que componente é esse e nem uso Lazarus, mas a ideia é instanciar um objeto como de costume. Por exemplo:
Form1 := TForm1.Create(Application);

Deve haver o construtor Create nessa classe, verifique.
GOSTEI 0
Carlos Rocha

Carlos Rocha

18/04/2013

O lazarus cria assim:

TForm1 = class(TForm)

GOSTEI 0
Joel Rodrigues

Joel Rodrigues

18/04/2013

Não, isso é a declaração. A criação é como eu falei e não deve variar, uma vez que o LAzarus também usa Pascal.
GOSTEI 0
Carlos Rocha

Carlos Rocha

18/04/2013

como ficaria então?
GOSTEI 0
Joel Rodrigues

Joel Rodrigues

18/04/2013

Deverá ser algo do tipo:
conexao := mysql55conn.TMySQL55Connection.Create
GOSTEI 0
POSTAR