Um Exemplo bem fácil e prático de como inserir dados em uma tabela no Microsoft Acces utilizando VBA - Macros do próprio Acces
A tabela que utilizaremos como exemplo terá somente dois campos:
create table cidade(
cd_cidd integer,
nm_cidd varchar(15)
)
Será inserido na tabela dados conforme exemplo abaixo:
cd_cidd nm_cidd
1 cidade1
2 cidade2
3 cidade3
4 cidade4
5 cidade5
.... e assim sucessivamente até que o loop chegue ao fim, que no nosso caso é de 1 milhão
No VBA utilize a procedure a seguir.
Sub inserir_dados()
Dim dbs As Database
Set dbs = OpenDatabase("Banco de dados1.accdb")
Dim contador As Double
Dim cidade As String
contador = 1
cidade = "cidade"
Do While (contador < 1000000)
dbs.Execute "insert into cidade(cd_cidd,nm_cidd) "
&"values(" & contador & ",'" & cidade & contador & "')"
contador = contador + 1
Loop
dbs.Close
End Sub
quarta-feira, 25 de novembro de 2015
segunda-feira, 23 de fevereiro de 2015
Relatório Delphi7 Abrindo Sempre o Mesmo Resultado da Pesquisa Anterior
Problema com RaveRaports no Delphi?
Então tá aqui ma dica simples que faz muita gente perder a cabeça:
Descrição do Problema
Ao gerar um relatório usando no Delphi7 o valor apresentado sempre é igual ao ultimo resultado buscado, mesmo sem ocorrer nenhum erro e mesmo com a consulta retornando valor correto no DBGrid do formulário...
Muitos Tópicos afirmam que o problema é no componente do DELPHI, e manda atualizar, porém nada vai adiantar, porque o problema não é no componente, muito menos na consulta.
SOLUÇÃO
Para resolver isso precisamos apenas corrigir um pequeno detalhe: o evento onClose do formulário que consta a consulta.
Evento OnClose do formulário digite: Action:=cafree;
Com isso o formulário é destruído o sistema e cada vez que você abrir, é como se fosse a primeira vez
OBS: não esqueça que com isso, cada vez que for preciso exibir o formulário será necessário criar ele novamente
ex: Application.CreateForm(TfmFormXX, fmFormXX);
Espero que alguém seja ajudado
Problema com QuickReportno Delphi?
Então tá aqui ma dica simples que faz muita gente perder a cabeça:
Descrição do Problema
Ao gerar um relatório usando no Delphi7 o valor apresentado sempre é igual ao ultimo resultado buscado, mesmo sem ocorrer nenhum erro e mesmo com a consulta retornando valor correto no DBGrid do formulário...
Muitos Tópicos afirmam que o problema é no componente do DELPHI, e manda atualizar, porém nada vai adiantar, porque o problema não é no componente, muito menos na consulta.
SOLUÇÃO
Para resolver isso precisamos apenas corrigir um pequeno detalhe: o evento onClose do formulário que consta a consulta.
Evento OnClose do formulário digite: Action:=cafree;
Com isso o formulário é destruído o sistema e cada vez que você abrir, é como se fosse a primeira vez
OBS: não esqueça que com isso, cada vez que for preciso exibir o formulário será necessário criar ele novamente
ex: Application.CreateForm(TfmFormXX, fmFormXX);
Espero que alguém seja ajudado
segunda-feira, 25 de março de 2013
Delphi: Executando Componentes de Banco de Dados
Como executar uma Query no Delphi
Alguns programadores iniciantes ao inserir um Query no Data Module da Aplicação simplesmente altera o Campo SQL para executar a operação desejada, porém a forma mais eficaz e executá-la no corpo do programa, assim como as stored procedures
Execução de Query no Delphi
qry.Close;
lQuery := TQuery.Create(nil);
try lQuery.SQL.Clear;
lQuery.SQL.Add('exec fn_ResolucaoPessoa: TipoPesquisa: NomePessoa: CPF: RG: DataNascimento: NomeMae');
lQuery.Parameters.ParamByName( 'TipoPesquisa').Value := rgOpcoes.ItemIndex;
lQuery.Parameters.ParamByName( 'NomePessoa').Value := EditNome.Text;
lQuery.Parameters.ParamByName( 'CPF').Value := EditCPF.Text;
lQuery.Parameters.ParamByName( 'RG').Value := EditRG.Text;
lQuery.Parameters.ParamByName( 'DataNascimento').Value := EditDataNasc.Date;
lQuery.Parameters.ParamByName( 'NomeMae').Value := EditNomeMae.Text;
lQuery.ExecSQL;finally
lQuery.Free;end;
Alguns programadores iniciantes ao inserir um Query no Data Module da Aplicação simplesmente altera o Campo SQL para executar a operação desejada, porém a forma mais eficaz e executá-la no corpo do programa, assim como as stored procedures
Execução de Query no Delphi
qry.Close;
qry.SQL.Clear;
qry.SQL.Add(passe aqui o sql da lista);
qry.ExecSQL;
Execução de Stored Procedures no Delphi
CREATE PROCEDURE ATUALIZA_PRECO_VND_PRD (
id_produto integer,
margem_lucro decimal(15,4))
as
begin
update tabprodutos
set preco_venda = preco_custo + (preco_custo * :margem_lucro)/100
where id_produto = :id_produto;
suspend;
end^
SET TERM ; ^
Execução de Stored Procedures no Delphi
CREATE PROCEDURE ATUALIZA_PRECO_VND_PRD (
id_produto integer,
margem_lucro decimal(15,4))
as
begin
update tabprodutos
set preco_venda = preco_custo + (preco_custo * :margem_lucro)/100
where id_produto = :id_produto;
suspend;
end^
SET TERM ; ^
with qrylocal do
begin
close;
sql.clear;
sql.add(' EXECUTE PROCEDURE ATUALIZA_PRECO_VND_PRD (:id_produto,:margem_lucro decimal)');
Params[0].asinteger := inttostr(dbe_produto.text);
Params[1].ascurrency := inttofloat(dbe_margemLucro.text);
try
execsql;
dm.connection.commit;
except
dm.connection.rollback;
end;
end;
begin
close;
sql.clear;
sql.add(' EXECUTE PROCEDURE ATUALIZA_PRECO_VND_PRD (:id_produto,:margem_lucro decimal)');
Params[0].asinteger := inttostr(dbe_produto.text);
Params[1].ascurrency := inttofloat(dbe_margemLucro.text);
try
execsql;
dm.connection.commit;
except
dm.connection.rollback;
end;
end;
lQuery := TQuery.Create(nil);
try lQuery.SQL.Clear;
lQuery.SQL.Add('exec fn_ResolucaoPessoa: TipoPesquisa: NomePessoa: CPF: RG: DataNascimento: NomeMae');
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.Parameters.ParamByName(
lQuery.ExecSQL;finally
lQuery.Free;end;
MySQL: como auto incrementar?
Essa é a mais fácil de todas.
veja o exemplo...
create table venda (
numero integer not null auto_increment,
data date,
primary key(numero)
);
Acrescente a palavra auto_increment após o nome do atributo, mas cuidado com a ignorância, o auto incremento não funcionará em atributos CHAR,VARCHAR,TEXT...
veja o exemplo...
create table venda (
numero integer not null auto_increment,
data date,
primary key(numero)
);
MySQL: Como criar e executar Stored Procedures
Stored procedures são procedimentos armazenados, ou seja inserts, updates, deletes ou select que você cria e que armazena para poder executar com parâmetros ou não
Criando Storeds Procedures no MySQL
usaremos como exemplo a tabela venda abaixo
create table venda(
codVenda int,
data date,
total float,
primary key(codvenda)
)
DELIMITER $$
CREATE procedure InserirVenda(cdv int,dt date,tot float)
BEGIN
insert into itensvenda(codVenda,data,total)
values(cdv,dt,tot);
END$$
DELIMITER ;
EXECUTANDO
call InserirVenda(1,2013-03-03,10)
Fácil! não?
Criando Storeds Procedures no MySQL
usaremos como exemplo a tabela venda abaixo
create table venda(
codVenda int,
data date,
total float,
primary key(codvenda)
)
DELIMITER $$
CREATE procedure InserirVenda(cdv int,dt date,tot float)
BEGIN
insert into itensvenda(codVenda,data,total)
values(cdv,dt,tot);
END$$
DELIMITER ;
EXECUTANDO
call InserirVenda(1,2013-03-03,10)
Fácil! não?
stored procedure é muito fácil, vc só precisa informar onde ela começa e termina com "DELIMITER $$" dá um nome a ela e entre o begin e o end colocar o que desejar, inserir, deletar, atualizar...
Assinar:
Postagens (Atom)