MySQL DBX como criar autoincremento
Olá pessoal, estou iniciando em MySQL com DBX,
em minha tabela no MySQL, defini um campo [b:19badecbd5]ID[/b:19badecbd5]
inteiro auto_increment que é a chave primaria
mas não sei como fazer com que a numeração seja
gerada automaticamente com o DBX.
O que eu preciso fazer pra isso acontecer ??
T+
em minha tabela no MySQL, defini um campo [b:19badecbd5]ID[/b:19badecbd5]
inteiro auto_increment que é a chave primaria
mas não sei como fazer com que a numeração seja
gerada automaticamente com o DBX.
O que eu preciso fazer pra isso acontecer ??
T+
Eniorm
Curtidas 0
Respostas
Eniorm
02/06/2004
(sobe)
GOSTEI 0
Eniorm
02/06/2004
[quote:e7a6168d4f=´Enio Marconcini´](sobe)[/quote:e7a6168d4f]
GOSTEI 0
Alex Maia
02/06/2004
Se vc optar por não usar campos do tipo auto-incremento, podes usar a função abaixo declarando SqlExpr na clausula USES da unit :
// Função para autoincremento de tabelas
Function TF_Principal.Incrementa(Nome_Tabela : String; Chave_Primaria : String):Integer;
var Qry : TSQLQuery;
begin
Qry := TSQLQuery.Create(nil);
try
Qry.SQLConnection := SQLConnection1;
Qry.SQL.Text := ´SELECT MAX(´+Chave_Primaria+´) FROM ´+ Nome_Tabela;
Qry.Open;
if Qry.Fields[0].IsNull then
Incrementa := 1
else
Incrementa := Qry.Fields[0].AsInteger + 1 ;
finally
FreeAndNil(Qry);
end;
end;
// Função para autoincremento de tabelas
Function TF_Principal.Incrementa(Nome_Tabela : String; Chave_Primaria : String):Integer;
var Qry : TSQLQuery;
begin
Qry := TSQLQuery.Create(nil);
try
Qry.SQLConnection := SQLConnection1;
Qry.SQL.Text := ´SELECT MAX(´+Chave_Primaria+´) FROM ´+ Nome_Tabela;
Qry.Open;
if Qry.Fields[0].IsNull then
Incrementa := 1
else
Incrementa := Qry.Fields[0].AsInteger + 1 ;
finally
FreeAndNil(Qry);
end;
end;
GOSTEI 0
Eniorm
02/06/2004
[quote:510e46d133=´Alex Maia´]Se vc optar por não usar campos do tipo auto-incremento, podes usar a função abaixo declarando SqlExpr na clausula USES da unit(...)[/quote:510e46d133]
É uma boa alternativa, mas acho que desta forma eu
estaria correndo o risco de dois clientes, por acaso,
buscar o mesmo número e na hora de gravar, dar pau????
O auto_inc, que pertence ao banco, evitaria isso sem
maiores problemas, mas a sua ajuda vem a calhar.
T+
É uma boa alternativa, mas acho que desta forma eu
estaria correndo o risco de dois clientes, por acaso,
buscar o mesmo número e na hora de gravar, dar pau????
O auto_inc, que pertence ao banco, evitaria isso sem
maiores problemas, mas a sua ajuda vem a calhar.
T+
GOSTEI 0
Alex Maia
02/06/2004
Contorno este problema realizando uma consulta antes da gravação para verificar se o número da chave que recebi já existe. Se existir busco receber um novo valor para a chave e gravo.
GOSTEI 0