CRIAR UMA STORED PROCEDURE
oi gente me ajudem a construir um [b:3ce65e7b12]stored procedure [/b:3ce65e7b12]para substituir o comando do botão abaixo.
Não sei como fazer(nunca fiz uma). Gostaria de construir uma que não fosse nescessario trazer [b:3ce65e7b12]todos os dados servidor[/b:3ce65e7b12] (e varrer toda a tabela) para poder inserir um novo codigo. uso o codigo abaixo para incluir um novo cliente e poder vizualizar o código antes de gravar (Tem que ser tipo 000001, 000002 etc..)
minha table com o campo que preciso é: (ID char (6) not null primary key)
procedure TFormCadastroClientes.btn_IncluirClick(Sender: TObject);
var intCodigo, intTamanho: integer;
strCodigo: string;
begin
IBDataSet.Close;
IBDataSet.SelectSQL.Clear;
IBDataSet.SelectSQL.Add(´SELECT * FROM cliente order by id´);
IBDataSet.Open;
1º
strSql:=´SELECT * FROM cliente order by id´;
if IBDataSet.RecordCount = 0 then
begin
IBDataSet.insert;
IBDataSet.FieldByName(´ID´).AsString:= ´000001´;
end;
2º
if (IBDataSet.RecordCount <>0) then
begin
IBDataSet.Last;
intCodigo:=StrToInt(IBDataSet.FIELDBYNAME(´ID´).AsString);
inc (intCodigo);
strCodigo:= IntToStr(intCodigo);
intTamanho:= length (strCodigo);
strCodigo:= copy (´000000´+strCodigo,intTamanho+1, 6);
IBDataSet.Insert;
IBDataSet.FIELDBYNAME(´ID´).AsString:= strCodigo;
end;
end;
Não sei como fazer(nunca fiz uma). Gostaria de construir uma que não fosse nescessario trazer [b:3ce65e7b12]todos os dados servidor[/b:3ce65e7b12] (e varrer toda a tabela) para poder inserir um novo codigo. uso o codigo abaixo para incluir um novo cliente e poder vizualizar o código antes de gravar (Tem que ser tipo 000001, 000002 etc..)
minha table com o campo que preciso é: (ID char (6) not null primary key)
procedure TFormCadastroClientes.btn_IncluirClick(Sender: TObject);
var intCodigo, intTamanho: integer;
strCodigo: string;
begin
IBDataSet.Close;
IBDataSet.SelectSQL.Clear;
IBDataSet.SelectSQL.Add(´SELECT * FROM cliente order by id´);
IBDataSet.Open;
1º
strSql:=´SELECT * FROM cliente order by id´;
if IBDataSet.RecordCount = 0 then
begin
IBDataSet.insert;
IBDataSet.FieldByName(´ID´).AsString:= ´000001´;
end;
2º
if (IBDataSet.RecordCount <>0) then
begin
IBDataSet.Last;
intCodigo:=StrToInt(IBDataSet.FIELDBYNAME(´ID´).AsString);
inc (intCodigo);
strCodigo:= IntToStr(intCodigo);
intTamanho:= length (strCodigo);
strCodigo:= copy (´000000´+strCodigo,intTamanho+1, 6);
IBDataSet.Insert;
IBDataSet.FIELDBYNAME(´ID´).AsString:= strCodigo;
end;
end;
Siro
Curtidas 0