Fórum MySQL DBX como criar autoincremento #235664

02/06/2004

0

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+


Eniorm

Eniorm

Responder

Posts

02/06/2004

Eniorm

(sobe)


Responder

Gostei + 0

03/06/2004

Eniorm

[quote:e7a6168d4f=´Enio Marconcini´](sobe)[/quote:e7a6168d4f]


Responder

Gostei + 0

03/06/2004

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 :


// 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;


Responder

Gostei + 0

04/06/2004

Eniorm

[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+


Responder

Gostei + 0

04/06/2004

Alex Maia

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.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar