SQL + DBText Como deixar o usuario alterar o Query?

Programação C em geral

Moderadores: 51, guest2003

SQL + DBText Como deixar o usuario alterar o Query?

Mensagempor __JEREK__ » 01 Jan 2007 20:58

olá galera, estou tentando fazer um Query onde a busca se altere a cada vez que o registro seja alterado pelo usuário.

Tenho uma tabela com o nome 00_CON_REL_APA_MOD. Nela tem duas colunas:

COD_APA = Código do aparelho
COD_MOD = Código do modelo do aparelho

e fiz o seguinte formulário:
Imagem

O que eu estou tentando fazer é que toda vez que mude o registro apareçam o modelos cadastrados para cada aparelho. Exemplo:

Tabela 00_CON_REL_APA_MOD:
Imagem

No ADOQuery, na propriedade SQL eu coloquei o seguinte código:

Código: Selecionar todos
SELECT [00_CON_REL_APA_MOD].COD_APA, [00_CON_REL_APA_MOD].COD_MOD
FROM   [00_CON_REL_APA_MOD]
WHERE  [00_CON_REL_APA_MOD].COD_APA = 3;


Imagem

Desse jeito eu consigo filtar o que eu quero

Imagem

Só que quando eu tento retirar a informação de qual registro esta no DBText1 para que possa filtrar no SQL dá erro de incompatibilidade de dados

Imagem

o código que estou usando é esse:

Código: Selecionar todos
SELECT [00_CON_REL_APA_MOD].COD_APA, [00_CON_REL_APA_MOD].COD_MOD
FROM  [00_CON_REL_APA_MOD]
WHERE [00_CON_REL_APA_MOD].COD_APA = '"+DBText1->Text+"';


Alguem pode me dar uma dica de como deixar que o usuário altere o Query do SQL?? Ou seja, ao invés de "WHERE [00_CON_REL_APA_MOD].COD_APA = 3;", no lugar desse 3 vir o valor do DBText1.

Outra dúvida, como faço para atualizar a tabela a cada mudança de registro?? Percebi que os registros que eu adciono só são atualizados se eu fecho e abro programa, é estranho ter que fechar e abrir o programa cada vez que precisar atualizar!!

desde já agradeço qualquer dica, valeu!!!
__JEREK__
Byte
 
Mensagens: 216
Registrado em: 11 Out 2006 17:53
Localização: BA

Re: SQL + DBText Como deixar o usuario alterar o Query?

Mensagempor alsell » 02 Jan 2007 07:17

Acredito que na sua tabela, o dado em questão seja um inteiro, enquando do seu DBEdit vc está utilizando uma string e comparando com um inteiro. Também já tive o mesmo problema. Veja o trecho de código a seguir que utilizei:
//-----------------------------------
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM ASSINATURAS WHERE SETOR = :setor AND ETIQUETA = :etiq");
ADOQuery1->Parameters->ParamByName("setor")->DataType = ftInteger;
ADOQuery1->Parameters->ParamByName("setor")->Value = StrToInt(ComboBox1->Text);
ADOQuery1->Parameters->ParamByName("etiq")->DataType = ftString;
ADOQuery1->Parameters->ParamByName("etiq")->Value = "SIM";
ADOQuery1->Open();
//-----------------------------------
Em relação a atualizar os dados somente quando o programa é "re-aberto", experimente após qualquer alteração, fechar a query e abrir novamente.
alsell
Nibble
 
Mensagens: 58
Registrado em: 19 Out 2006 09:56
Localização: Três Passos - RS

Re: SQL + DBText Como deixar o usuario alterar o Query?

Mensagempor __JEREK__ » 02 Jan 2007 10:51

alsell escreveu:Acredito que na sua tabela, o dado em questão seja um inteiro, enquando do seu DBEdit vc está utilizando uma string e comparando com um inteiro. Também já tive o mesmo problema. Veja o trecho de código a seguir que utilizei:
//-----------------------------------
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("SELECT * FROM ASSINATURAS WHERE SETOR = :setor AND ETIQUETA = :etiq");
ADOQuery1->Parameters->ParamByName("setor")->DataType = ftInteger;
ADOQuery1->Parameters->ParamByName("setor")->Value = StrToInt(ComboBox1->Text);
ADOQuery1->Parameters->ParamByName("etiq")->DataType = ftString;
ADOQuery1->Parameters->ParamByName("etiq")->Value = "SIM";
ADOQuery1->Open();
//-----------------------------------
Em relação a atualizar os dados somente quando o programa é "re-aberto", experimente após qualquer alteração, fechar a query e abrir novamente.


Oi Alsell, obrigado pela ajuda mas ainda ficaram algumas dúvidas básicas!!!

1 - Aonde eu coloco o código? Crio um buttom e coloco no EventClick?

2 - "Abrir e fechar o Query para atualizar" é colocar esse código antes de cada consulta?

ADOQuery1->Close();
ADOQuery1->Open();

3 - porque algumas colunas estão com o : na frente?? tipo
:setor
:etiq

Fiz as seguintes observações no código:

Código: Selecionar todos
ADOQuery1->Close();    // fecha o Query para que os resultados de outra busca não  interfiram nessa busca
ADOQuery1->SQL->Clear();    // limpa o que estiver escrito no parâmetro SQL

ADOQuery1->SQL->Add("SELECT *                   // Seleciona todas (*) as
                FROM [00_CON_REL_APA_MOD]  // colunas da tabela [00_CON_REL_APA_MOD]
                WHERE COD_MOD = :cod_mod AND COD_APA = :cod_apa"); // onde COD_MOD vai ser igual a cod_mod
                                                                   // e COD_APA vai ser igual a cod_apa

ADOQuery1->Parameters->ParamByName("cod_mod")->DataType = ftInteger;       // muda cod_mod para inteiro
ADOQuery1->Parameters->ParamByName("cod_mod")->Value = StrToInt(DBEdit1->Caption); // pega o valor no
                                                                                   // DBEdit e
                                                                                   // transforma
                                                                                   // em inteiro
ADOQuery1->Parameters->ParamByName("cod_apa")->DataType = ftString;        // não sei o que é isso...
ADOQuery1->Parameters->ParamByName("cod_apa")->Value = "SIM";              // não sei o que é isso...
ADOQuery1->Open();                                                 // Abre o Query e faz a consulta


Será que acertei?
__JEREK__
Byte
 
Mensagens: 216
Registrado em: 11 Out 2006 17:53
Localização: BA

Mensagempor CCandido » 02 Jan 2007 22:00

__JEREK__,
cara gostaria de saber se ta sendo facil o dificil implementar o BD no BCB
para criar um controle de clientes
ex:
clientes/agregados
mensalidades pagou ou não.
é dificil de mais, ou não?
tem um cara aqui que, quer eu desenvolva um programa para um clube.
só de falar em BD ja da arrupios.....
vi que tu começou nele por isto pergunto as dificuldades.

t+
CCandido
Byte
 
Mensagens: 120
Registrado em: 12 Out 2006 12:54
Localização: Londrina-PR

Mensagempor __JEREK__ » 02 Jan 2007 23:10

Oi CCandido, é o seguinte, como vc tá vendo eu não sei nada de banco de dados, então vou escrever o que eu estou achando...

Comecei a pensar em um cadastro de serviços eletrônicos pra facilitar minha vida lá no trabalho e semana passada comecei a vasculhar sobre isso.

Pra vc implementar o banco de dados tipo Access no Builder é muito fácil, vc não vai escrever uma linha de código é só configuração.

Escolhi o Access porque eu acho que dá pau em banco de dados Access é um pouco difícil, quero dizer ele é mais confiável do que o Paradox (eu acho), criar as tabelas nele é super simples e vc pode levar para outro computador onde não precise instalar nada a mais.

O problema do banco de dados não é inserir os dados, o problemas são as consultas.

SQL é fundamental, não tem escapatória, mas não se preocupe, não é bicho de 7 cabeça não. Veja bem, vc acha muito material sobre SQL e é bem fácil de aprender a questão é como usar o SQL + Builder C++.

Essa está sendo a minha dificuldade até agora, mas ainda nem comecei a pensar nos relatórios...

Se for um coisa simples como vc colocou ai, com poucos itens, vc não vai ter dificudade não, dá pra fazer legal.

Não sei se responde sua dúvida, mas tamos ai pra ajudar em qualquer coisa.

abraços e boa sorte!!!
__JEREK__
Byte
 
Mensagens: 216
Registrado em: 11 Out 2006 17:53
Localização: BA

Mensagempor Maurício » 03 Jan 2007 00:21

Ei, __JEREK__ !!!

Tá ficando bão nesse trem, aí, hein ?!?!?! 8)

É isso aí, véio !!!

[]'s

RETI.
"Não leve a vida tão à sério, afinal, nenhum de nós sairá vivo, dela!"
Avatar do usuário
Maurício
Word
 
Mensagens: 678
Registrado em: 14 Out 2006 17:23
Localização: São Paulo - SP

Mensagempor __JEREK__ » 03 Jan 2007 11:54

Maurício escreveu:Ei, __JEREK__ !!!

Tá ficando bão nesse trem, aí, hein ?!?!?! 8)

É isso aí, véio !!!

[]'s

RETI.


hehehe grande Mauricio, tá sempre me dando uma força, brigadão mesmo!!!

valeu, maurição muito sucesso!!!
__JEREK__
Byte
 
Mensagens: 216
Registrado em: 11 Out 2006 17:53
Localização: BA

Mensagempor CCandido » 03 Jan 2007 21:19

pessoal axo que vou querer testar o BD no BCB.
apesar de não me dedicar a programar desktopper.
eu uso BCB só para comunicar com minhas interfaces (MCUs).
gostaria que postase aqui o caminho inicial ex:
tuturial ou apostilas qual componente usar,exemplos...etc.
a principio fazer uma boa base e ir aumentado o monstro paulatinamente
etapas:
1- cadastro de clientes(dependentes)
2- localizar clientes por(nome ou numero )
3- mensalidades (pagou ou não )
4- imprimir (escolher oque imprimir )

com o primeiro intem ja coloco ele pra rodar di verdade.
depois vou ajeitando o programa.
questoes?
um programa tem limite pre estabelecido de quanto vai suportar(clientes)
pode ele ser rodado em um pc servidor,e, ser acessado por varia pessoas
ao mesmo tempo?
ele faz automatico bcap?
vixi t+
CCandido
Byte
 
Mensagens: 120
Registrado em: 12 Out 2006 12:54
Localização: Londrina-PR

Mensagempor __JEREK__ » 03 Jan 2007 23:12

CCandido escreveu:com o primeiro intem ja coloco ele pra rodar di verdade.
depois vou ajeitando o programa.
questoes?
um programa tem limite pre estabelecido de quanto vai suportar(clientes)
pode ele ser rodado em um pc servidor,e, ser acessado por varia pessoas
ao mesmo tempo?
ele faz automatico bcap?
vixi t+


boas questões, eu tambem não sei esses detalhes, mas acho que ele não pode ser acessado por mais de um usuário (no casso do Access).
__JEREK__
Byte
 
Mensagens: 216
Registrado em: 11 Out 2006 17:53
Localização: BA


Voltar para Visual C++/C/C++/C#

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

x