Passar a função incluir_Dados para dentro do botão incluir
unit UBancoDados;
interface
uses ADODB,DB;
type
TCadPrinc=class
private
cnx:TADOConnection;
cadQry:TADOQuery;
Ds:TDataSource; public constructor create;overload;
destructor destroy;overload;
Function FazerConexao:boolean;
Function Incluir_Dados(cod:integer;nom:string):boolean;
Function Excluir_Dados(cod:integer;nom:string):boolean;
Function Alterar_Dados(cod:integer;nom:string):boolean; end; implementation constructor TCadprinc.create;
begin
inherited create;
cnx:= TADOConnection.Create(nil);
ds:= TDataSource.Create(nil);
cadqry:= TADOQUERY.Create(nil);
end;
destructor TCadprinc.destroy;
begin
cnx.Destroy;
ds.Destroy;
cadqry.Destroy;
inherited destroy;
end; function TCadPrinc.FazerConexao: boolean;
begin
cnx.Connected :=true;
cnx.ConnectionString :='provider=sqloledb.1;integrated security = sspi;persist security info = false;intial catalog = agenda; data sorce = fabio';
cnx.LoginPrompt :=true;
ds.DataSet := cadqry;
cadqry.Active := true;
cadqry.Connection := Cnx;
cadqry.SQL.Add('select*from tbcad where codigo=:wcod and nome=:wnom');
end; function TCadPrinc.Incluir_Dados(Wcod:integer;Wnom:string):boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add(' insert into tbcad(codigo,nome) values(:wcod,:wnom)');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end; function TCadPrinc.Excluir_Dados(Wcod:integer;Wnom:string):boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('delete from tbcad where codigo =:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end; function TCadPrinc.Alterar_Dados(Wcod:integer;Wnom:string):boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('update tbcad set codigo=:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end; end.
Ola amigos programadores eu estou com um ploblema de passar os parametros da função Incluir_dados da unit UBancodedados para dentro do lbcodigo.caption e txtnome.text que se aloja no botão incluir do form de cadastro de agenda.
Veja o evento do botao click. procedure Tfrmcad.BtnInclClick(Sender: TObject);
begin
if objcad.Incluir_Dados(wcod;wnom) then / está havendo erro nesta linha - [error] ucad.pas(58): undeclared identifier: 'wcod'/
begin
lbcodigo.Caption := wcod;
txtnome.Text := wnom;
end;
end;
cnx:TADOConnection;
cadQry:TADOQuery;
Ds:TDataSource; public constructor create;overload;
destructor destroy;overload;
Function FazerConexao:boolean;
Function Incluir_Dados(cod:integer;nom:string):boolean;
Function Excluir_Dados(cod:integer;nom:string):boolean;
Function Alterar_Dados(cod:integer;nom:string):boolean; end; implementation constructor TCadprinc.create;
begin
inherited create;
cnx:= TADOConnection.Create(nil);
ds:= TDataSource.Create(nil);
cadqry:= TADOQUERY.Create(nil);
end;
destructor TCadprinc.destroy;
begin
cnx.Destroy;
ds.Destroy;
cadqry.Destroy;
inherited destroy;
end; function TCadPrinc.FazerConexao: boolean;
begin
cnx.Connected :=true;
cnx.ConnectionString :='provider=sqloledb.1;integrated security = sspi;persist security info = false;intial catalog = agenda; data sorce = fabio';
cnx.LoginPrompt :=true;
ds.DataSet := cadqry;
cadqry.Active := true;
cadqry.Connection := Cnx;
cadqry.SQL.Add('select*from tbcad where codigo=:wcod and nome=:wnom');
end; function TCadPrinc.Incluir_Dados(Wcod:integer;Wnom:string):boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add(' insert into tbcad(codigo,nome) values(:wcod,:wnom)');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end; function TCadPrinc.Excluir_Dados(Wcod:integer;Wnom:string):boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('delete from tbcad where codigo =:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end; function TCadPrinc.Alterar_Dados(Wcod:integer;Wnom:string):boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('update tbcad set codigo=:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end; end.
Ola amigos programadores eu estou com um ploblema de passar os parametros da função Incluir_dados da unit UBancodedados para dentro do lbcodigo.caption e txtnome.text que se aloja no botão incluir do form de cadastro de agenda.
Veja o evento do botao click. procedure Tfrmcad.BtnInclClick(Sender: TObject);
begin
if objcad.Incluir_Dados(wcod;wnom) then / está havendo erro nesta linha - [error] ucad.pas(58): undeclared identifier: 'wcod'/
begin
lbcodigo.Caption := wcod;
txtnome.Text := wnom;
end;
end;
Fabio Pellegrini
Curtidas 0
Respostas
Alan Souza
22/02/2010
primeiramente, procure definir melhor o nome dos parâmetros:
Function Incluir_Dados(cod:integer;nom:string):boolean;
function TCadPrinc.Incluir_Dados(Wcod:integer;Wnom:string):boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add(' insert into tbcad(codigo,nome) values(:wcod,:wnom)');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end;
repare q uma hora os parâmetros são cod e nom, e outra são Wcod e Wnom
e na procedure:
procedure Tfrmcad.BtnInclClick(Sender: TObject);
begin
if objcad.Incluir_Dados(wcod;wnom) then //não é , ao invés de ; ? e wcod e wnom são variáveis de escopo global?
begin
lbcodigo.Caption := wcod;
txtnome.Text := wnom;
end;
end;
GOSTEI 0
Emerson Nascimento
22/02/2010
unit UBancoDados;
interface
uses ADODB,DB;
type
TCadPrinc=class
private
cnx:TADOConnection;
cadQry:TADOQuery;
Ds:TDataSource;
public
constructor create;overload;
destructor destroy;overload;
Function FazerConexao:boolean;
Function Incluir_Dados(cod:integer; nom:string): boolean;
Function Excluir_Dados(cod:integer; nom:string): boolean;
Function Alterar_Dados(cod:integer; nom:string): boolean;
end;
implementation
constructor TCadprinc.create;
begin
inherited create;
cnx:= TADOConnection.Create(nil);
ds:= TDataSource.Create(nil);
cadqry:= TADOQUERY.Create(nil);
end;
destructor TCadprinc.destroy;
begin
cnx.Destroy;
ds.Destroy;
cadqry.Destroy;
inherited destroy;
end;
function TCadPrinc.FazerConexao: boolean;
begin
cnx.Connected :=true;
cnx.ConnectionString :='provider=sqloledb.1;integrated security = sspi;persist security info = false;intial catalog = agenda; data sorce = fabio';
cnx.LoginPrompt :=true;
ds.DataSet := cadqry;
cadqry.Active := true;
cadqry.Connection := Cnx;
cadqry.SQL.Add('select*from tbcad where codigo=:wcod and nome=:wnom');
end;
function TCadPrinc.Incluir_Dados(cod:integer; nom:string): boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('insert into tbcad(codigo,nome) values(:wcod,:wnom)');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end;
function TCadPrinc.Excluir_Dados(cod:integer; nom:string): boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('delete from tbcad where codigo =:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end;
function TCadPrinc.Alterar_Dados(cod:integer; nom:string): boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('update tbcad set codigo=:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end;
end.
provavelmente o erro está na passagem dos valores. veja em qual objeto está sendo informado o valor e passe esse valor para o método.
procedure Tfrmcad.BtnInclClick(Sender: TObject);
begin
// o primeiro parâmetro deve ser inteiro e o segundo, string,
// pois está definido desta forma no cabeçalho do método:
// Function Incluir_Dados(cod:integer; nom:string): boolean;
if objcad.Incluir_Dados(strtointdef(txtcodigo.text, 0), txtnome.text) then // inclui a informação no BD
begin
txtcodigo.text := '';
txtnome.Text := '';
end;
end;
interface
uses ADODB,DB;
type
TCadPrinc=class
private
cnx:TADOConnection;
cadQry:TADOQuery;
Ds:TDataSource;
public
constructor create;overload;
destructor destroy;overload;
Function FazerConexao:boolean;
Function Incluir_Dados(cod:integer; nom:string): boolean;
Function Excluir_Dados(cod:integer; nom:string): boolean;
Function Alterar_Dados(cod:integer; nom:string): boolean;
end;
implementation
constructor TCadprinc.create;
begin
inherited create;
cnx:= TADOConnection.Create(nil);
ds:= TDataSource.Create(nil);
cadqry:= TADOQUERY.Create(nil);
end;
destructor TCadprinc.destroy;
begin
cnx.Destroy;
ds.Destroy;
cadqry.Destroy;
inherited destroy;
end;
function TCadPrinc.FazerConexao: boolean;
begin
cnx.Connected :=true;
cnx.ConnectionString :='provider=sqloledb.1;integrated security = sspi;persist security info = false;intial catalog = agenda; data sorce = fabio';
cnx.LoginPrompt :=true;
ds.DataSet := cadqry;
cadqry.Active := true;
cadqry.Connection := Cnx;
cadqry.SQL.Add('select*from tbcad where codigo=:wcod and nome=:wnom');
end;
function TCadPrinc.Incluir_Dados(cod:integer; nom:string): boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('insert into tbcad(codigo,nome) values(:wcod,:wnom)');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end;
function TCadPrinc.Excluir_Dados(cod:integer; nom:string): boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('delete from tbcad where codigo =:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end;
function TCadPrinc.Alterar_Dados(cod:integer; nom:string): boolean;
begin
with cadqry do
begin
try
close;
sql.Clear;
sql.Add('update tbcad set codigo=:wcod and nome=:wnom');
parameters[0].Value :=cod;
parameters[1].Value:=nom;
execsql;
except
end;
end;
end;
end.
provavelmente o erro está na passagem dos valores. veja em qual objeto está sendo informado o valor e passe esse valor para o método.
procedure Tfrmcad.BtnInclClick(Sender: TObject);
begin
// o primeiro parâmetro deve ser inteiro e o segundo, string,
// pois está definido desta forma no cabeçalho do método:
// Function Incluir_Dados(cod:integer; nom:string): boolean;
if objcad.Incluir_Dados(strtointdef(txtcodigo.text, 0), txtnome.text) then // inclui a informação no BD
begin
txtcodigo.text := '';
txtnome.Text := '';
end;
end;
GOSTEI 0
Fabio Pellegrini
22/02/2010
Me desculpem gente a passagem verdadeira dos parametros das functions e a seguinte
function TCadPrinc.Incluir_Dados(Wcod:integer;Wnom:string):boolean;
Obrigado a todos.
GOSTEI 0