[delphi-br] Tipos de conexão com SQL SERVER
Moçada é o seguinte, gostaria de saber na opnião de vocês qual é a melhor forma de se conectar com o SQL Server utilizando o Delphi 7, qual os pós e os contras dos componentes ADO, BDE, OBDC e etc. Muito obrigado pela atenção de todos. Att, Angelo Louzada Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Quando utilizo Rave não consigo encerrar o executável
Moçada estou com o seguinte problema, estou utilizando Delphi 7 + Rave + Interbase e toda vez que com a aplicação rodando eu chamo algum relatório desenvolvido no Rave eu não consigo encerrar a aplicação, visualizo o relatório, fecho o relatório, abro qualquer outro formulário ou relatório porém ao encerrar a aplicação o executável fica garrado na barra de tarefas do Windows e não encerra, se executar o sistema e abrir qualquer formulário sem executar nenhum relatório, ao encerrar a aplicação o executável fecha normalmente. Alguém já viveu algo parecido? Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Quando utilizo Rave não consigo encerrar o executável
Moçada estou com o seguinte problema, estou utilizando Delphi 7 + Rave + Interbase e toda vez que com a aplicação rodando eu chamo algum relatório desenvolvido no Rave eu não consigo encerrar a aplicação, visualizo o relatório, fecho o relatório, abro qualquer outro formulário ou relatório porém ao encerrar a aplicação o executável fica garrado na barra de tarefas do Windows e não encerra, se executar o sistema e abrir qualquer formulário sem executar nenhum relatório, ao encerrar a aplicação o executável fecha normalmente. Alguém já viveu algo parecido? Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Select especial
select nomeproduto, min(valor) from produto group by nomeproduto De: Clovito <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 30 de Outubro de 2008 17:52:19 Assunto: [delphi-br] Select especial Ola Pessoal Saudações Tenho um banco de dados em access, trbalho com D7 e tenho a seguinte situação; Tenho diversos produtos cadastrados, cada produto podera se repetir varias vezes e com preços diferentes. quero criar um filtro que me apresente somente o preço menor. Isto é um banco de dados de uma cotação para um supermercado, por exemplo: arroz A12,00 arroz B12,50 Arroz C11,90 Feijão A 5,00 Feijão C 5,89 Feijão C 4,89 Resultado Arroz C11,90 Feijão C 4,89 etc, etc Obrigado Clovito CLOVIS MACHADO FERREIRA QUE A PAZ DO GRANDE ARQUITETO DO UNIVERSO NOS AMPARE MSN-> [EMAIL PROTECTED] [As partes desta mensagem que não continham texto foram removidas] -- < FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM > Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Quando utilizo Rave não consigo encerrar o executável
Moçada estou com o seguinte problema, estou utilizando Delphi 7 + Rave + Interbase e toda vez que com a aplicação rodando eu chamo algum relatório desenvolvido no Rave eu não consigo encerrar a aplicação, visualizo o relatório, fecho o relatório, abro qualquer outro formulário ou relatório porém ao encerrar a aplicação o executável fica garrado na barra de tarefas do Windows e não encerra, se executar o sistema e abrir qualquer formulário sem executar nenhum relatório, ao encerrar a aplicação o executável fecha normalmente. Alguém já viveu algo parecido? Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Substituição de caracter INTERBASE
Olá pessoal, conseguir uma base de dados de CEP que possui uma tabela chamada ENDERECO, nessa tabela possui um campo chamado ENDERECO_LOGRADOURO que possui o nome da rua, avenida e etc, porém o conteúdo começa sempre com o nome RUA ou AVENIDA e em minha base de dados eu possuo um campo chamado TIPO_RUA e outro chamado ENDERECO que armazena somente o nome da rua ou avenida sem o tipo. Pergunta, tem como realizar um update na tabela ENDERECO excluindo somente a palavra RUA ou AVENIDA do campo ENDERECO_LOGRADOURO? O banco de dados utilizado é o Interbase. Obrigado pela atenção, Angelo Louzada Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Controle de pagamento com Cartões de Créditos e Débi tos
Prezados, estou querendo criar um módulo em meus sistemas que irá permitir os pagamentos utilizando cartões de créditos ou débitos, alguém da lista possui algum sistema exemplo ou tutorial contemplando o assunto? Att, Angelo Louzada Novos endereços, o Yahoo! que você conhece. Crie um email novo com a sua cara @ymail.com ou @rocketmail.com. http://br.new.mail.yahoo.com/addresses [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Sistema para administrar parque infantil em shopping
Olá companheiros, alguém conhece um sistema (free ou pago) ou empresa que vende um sistema de administração de parque infantil que geralmente são encontrados em shopping? Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Como montar uma pesquisa por aproxi mação
Opa, já tentei com o operador like porém o que eu estava querendo era o seguinte: A medida que o usuário fosse digitando fosse mostrando no grid o resultado palavra o palavra ou seja, tenho no grid no campo nome os seguintes registros: Ana Cecília Ana Maria Angela Silva Anderson Vieira A medida que o usuário fosse digitando em um Edit os caracteres Ang o cursor do grid já iria se posicionando, através do seu exemplo o usuário digita o nome ou parte do nome e manda fazer a pesquisa e eu queria que isso acontecesse a medida que o usuário fosse digitando caractér por caractér parecido com o comportamento do DBLookupComboBox. - Mensagem original De: Claudiney Cogo <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 8 de Fevereiro de 2008 9:25:52 Assunto: Re: [delphi-br] Como montar uma pesquisa por aproximação Olá Angelo. É tranquilo... Já que você tá usando o IBQuery é melhor trabalhar direto com o SQL que passa pra ele. Na entrada do form você, se preferir, carrega tudo.. (cuidado com tabelas muito grandes).. usando um comando como esse: IBQryTabela. SQL.Clear; IBQryTabela. Sql.Add(' Select * from SuaTabela'); IBQryTabela. Active := True; Depois no evento CHANGE do edit você altera o comando incluindo a opção like: IBQryTabela. SQL.Clear; IBQryTabela. Sql.Add(' Select * from SuaTabela where CampoTabela like ' + QuotedStr(Edit1. Text + '%') + ' order by CampoTabela' ); IBQryTabela. Active := True; Isso supondo que você esteja fazendo a pesquisa por um campo string, como nome ou descrição. Aqui o comando procura o que você digita no início do campo. Caso queira procurar em qualquer posição coloque um % antes do Edit1.Text também IBQryTabela. SQL.Clear; IBQryTabela. Sql.Add(' Select * from SuaTabela where CampoTabela like ' + QuotedStr('% ' + Edit1.Text + '%') + ' order by CampoTabela' ); IBQryTabela. Active := True; Porém, tome um certo cuidado com bases muito grandes. Esse tipo de consulta pode causar um pouco de perda de performance. Nesse caso é melhor não abrir a tabela toda na entrada e digitar tudo o que deseja buscar primeiro, para depois fazer a busca e selecionar só o que interessa. Isso reduz muito o tamanho do dataset que será retornado. Espero que seja isso. Abraço. _ _ ___ Claudiney Cogo N2 Sistemas e Soluções em Informática Av. São Paulo, 172 - 15º Andar - Sala 1505 Maringá - Paraná www.n2solutions. com.br www.studion2. com.br - Original Message - From: Angelo Louzada To: [EMAIL PROTECTED] os.com.br Sent: Friday, February 08, 2008 7:30 AM Subject: [delphi-br] Como montar uma pesquisa por aproximação Amigos, estou utilizando um IBQuery trazendo os dados da tabela de clientes e mostrando em um DBGrid gostaria que meu usuário digitasse em um Edit o nome do cliente e a medida que ele fosse digitando o nome do cliente o DBGrid fosse realizando o filtro palavra por palavra, alguém sabe como posso implementar isso? Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] __ NOD32 2857 (20080207) Information __ This message was checked by NOD32 antivirus system. http://www.eset. com [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Como montar uma pesquisa por aproximação
Amigos, estou utilizando um IBQuery trazendo os dados da tabela de clientes e mostrando em um DBGrid gostaria que meu usuário digitasse em um Edit o nome do cliente e a medida que ele fosse digitando o nome do cliente o DBGrid fosse realizando o filtro palavra por palavra, alguém sabe como posso implementar isso? Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Pesquisa por aproximação
Amigos, estou utilizando um IBQuery trazendo os dados da tabela de clientes e mostrando em um DBGrid gostaria que meu usuário digitasse em um Edit o nome do cliente e a medida que ele fosse digitando o nome do cliente o DBGrid fosse realizando o filtro palavra por palavra, alguém sabe como posso implementar isso? Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Problema ao encerrar a aplicação
Amigos, Tenho notado que minha aplicação está lenta quando encerro e às vezes quando encerro o formulário principal é fechado porém meu executável fica garrado e só consigo encerrá-lo finalizo seu processo no Windows. Todos os meus formulários da aplicação são encerrados apenas com o comando Close. Tenho que executar algum outro comando de encerramento? Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: RES: [delphi-br] Pegar o número da coluna d e um DBGrid
Amigo Davi, pelo que estou lendo no help do delphi para mudar a cor do TÍTULO do Grid eu preciso informar o número da coluna, exemplo: DBGrid1.Columns[0]... DBGrid1.Columns[1]... DBGrid1.Columns[2]... o que eu preciso fazer é pegar esse número do indice quando o usuário clica no título, implementando o exemplo que você acho no google consegui no máximo fazer isso: procedure TFormPadrao1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); var Grid: TDBGrid; begin //Coloca o Grid zebrado if odd(IBDataSet1.RecNo) then begin DBGrid1.Canvas.Brush.Color := clCream; DBGrid1.Canvas.FillRect(Rect); DBGrid1.DefaultDrawDataCell(Rect, Column.Field,State); end; //Muda a cor da célula selecionada Grid := TDBGrid(Sender) ; if gdSelected in State then begin Grid.Canvas.Brush.Color := clYellow; Grid.Canvas.Font.Color := clRed; Grid.Canvas.Pen.Color := clRed; Grid.Canvas.FillRect(Rect); Grid.Canvas.TextOut(Rect.Left+2, Rect.Top+2, Grid.DataSource.DataSet.Fields[DataCol].AsString); end; end; Estava tentando alguma coisa no evento OnTitleClick procedure TFormPadrao1.DBGrid1TitleClick(Column: TColumn); begin if ControlGrid = 1 then begin try strSql := 'SELECT * FROM ' + nomeTabela + ' ORDER BY ' + Column.FieldName; With IBDataSet1 Do begin Close; SelectSQL.Clear; SelectSQL.Add(strSql); Open; end; if IBDataSet1.RecordCount = 0 then begin mensagem := 'Não foi encontrado nenhum registro que ' + #13 + 'satisfaça a sua pesquisa. '; Application.MessageBox(PChar(mensagem), 'Informação', mb_Ok + mb_IconInformation); Abort; end; strSql := 'SELECT * FROM ' + nomeTabela; DBGrid1.Tag := Column.ID; DBGrid1.Columns[DBGrid1.Tag].Title.Color := $00BE7C7C; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Color := clWhite; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Style := [fsBold]; } ControlGrid := 2; except mensagem := 'Não existe registros na tabela.'; Application.MessageBox(PChar(mensagem), 'Informação', mb_Ok + mb_IconInformation); end; end else if ControlGrid = 2 then begin try strSql := 'SELECT * FROM ' + nomeTabela + ' ORDER BY ' + Column.FieldName + ' DESC'; With IBDataSet1 Do begin Close; SelectSQL.Clear; SelectSQL.Add(strSql); Open; end; if IBDataSet1.RecordCount = 0 then begin mensagem := 'Não foi encontrado nenhum registro que ' + #13 + 'satisfaça a sua pesquisa. '; Application.MessageBox(PChar(mensagem), 'Informação', mb_Ok + mb_IconInformation); Abort; end; strSql := 'SELECT * FROM ' + nomeTabela; ControlGrid := 1; except mensagem := 'Não existe registros na tabela.'; Application.MessageBox(PChar(mensagem), 'Informação', mb_Ok + mb_IconInformation); end; end; {// restaurando a cor do título DBGrid1.Columns[DBGrid1.Tag].Title.Color := clBtnFace; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Color := clWindowText; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Style := []; // guarda a coluna selecionada DBGrid1.Tag := Column.Index; // alterando a cor do título do campo ordenado DBGrid1.Columns[DBGrid1.Tag].Title.Color := $00BE7C7C; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Color := clWhite; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Style := [fsBold];} end; - Mensagem original De: Davi Eduardo Borges Wall <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 1 de Fevereiro de 2008 8:16:13 Assunto: RES: [delphi-br] Pegar o número da coluna de um DBGrid Ah! Esqueci de falar, tenho certeza que vais me perguntar! É só alterar a pintura para o title! De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de Davi Eduardo Borges Wall Enviada em: sexta-feira, 1 de fevereiro de 2008 09:12 Para: [EMAIL PROTECTED] os.com.br Assunto: RES: [delphi-br] Pegar o número da coluna de um DBGrid procedure TForm1.DBGrid1DrawC olumnCell( Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState) ; var Grid: TDBGrid; begin Grid := TDBGrid(Sender) ; if gdSelected in State then begin Grid.Canvas. Brush.Color := clYellow; Grid.Canvas. Font.Color := clRed; Grid.Canvas. Pen.Color := clRed; Grid.Canvas. FillRect( Rect); // Will need to handle right aligned fields yourself!!! Grid.Canvas. TextOut(Rect. Left+2, Rect.Top+2, Grid.DataSource. DataSet.Fields[ DataCol]. AsString) ; end; end; Nada que um Google não resolva.. De: [EMAIL PROTECTED] os.com.br <mailto:delphi- br%40yahoogrupos .com.br> [mailto:[EMAIL PROTECTED] os.com.br <mailto:delphi- br%40yahoogrupos .com.br> ] Em nome de Angelo Louzada Enviada em: sexta-feira, 1 de fevereiro de 2008 09:05 Par
[delphi-br] Pegar o número da coluna de um DBGrid
Olá amigos alguém sabe me dizer como pegar o numero da coluna clicada no DBGrid? Estou tentando alterar a cor do título quando o usuário clica no título da coluna mais não estou conseguindo obter o index dela, estou tentando o seguinte: DBGrid1.Tag := Column.Index; DBGrid1.Columns[DBGrid1.Tag].Title.Color := $00BE7C7C; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Color := clWhite; DBGrid1.Columns[DBGrid1.Tag].Title.Font.Style := [fsBold]; Mais não está dando certo. Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Impressão em Etiqueta e Cupon Fiscal
Bom dia a todos, Alguém tem um exemplo de impressão em Etiqueta e Cupon Fiscal? Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] SOLUÇÃO para distribuição d e aplicativo com BD - Criação de arquivo INI
Blz, não descobrir o fogo mais apaguei um fogo, se a mensagem não serviu para você e nem para o Sr. Davi apenas ignore. - Mensagem original De: Leonardo Quinino <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 25 de Janeiro de 2008 13:58:21 Assunto: Re: [delphi-br] SOLUÇÃO para distribuição de aplicativo com BD - Criação de arquivo INI Nem sabia que vc tinha essa dificuldade. até parece que vc descobriu o fogo , mas valeu a sua intenção é boa mesmo Em 25/01/08, Davi Eduardo Borges Wall <[EMAIL PROTECTED] com.br> escreveu: > > Tamanha dificuldade? ? Vc ta brincando! > > Tem exemplos de como criar arquivo INI no Help do Delphi! > > Basta apertar F1, agora se a tecla F1 ta com problema, aconselho vc a ir > no menu HELP do Delphi! RS... > > De: [EMAIL PROTECTED] os.com.br [mailto: > [EMAIL PROTECTED] os.com.br ] Em nome de > Angelo Louzada > Enviada em: sexta-feira, 25 de janeiro de 2008 11:12 > Para: [EMAIL PROTECTED] os.com.br > Assunto: [delphi-br] SOLUÇÃO para distribuição de aplicativo com BD - > Criação de arquivo INI > > > Amigos, pela tamanha dificuldade que tive em achar artigos explicando como > criar instaladores já levando Banco de Dados no cliente resolvi optar pela > distribuição através de arquivo .INI e pela dificuldade em achar artigos > explicando como criar arquivo .INI venho compartilhar com vocês a solução > que arrumei para minha aplicação. > > Primeiro criei um arquivo .INI no mesmo diretório dos fontes da aplicação. > > nome_do_arquivo. ini - Em nome_do_arquivo utilizei o mesmo nome do > executável e dentro do arquivo criado coloquei os seguintes parametros: > > [BD] > DATABASENAME= C:\Aplicacao\ database\ BANCO_DE_ DADOS.GDB > USERNAME=SYSDBA > PASSWORD=masterkey > > Na unit do DataModule ficou da seguinte maneira: > > unit frmDM; > interface > uses > SysUtils, Classes, IBDatabase, DB, IBCustomDataSet, IBQuery, RpBase, > RpSystem, RpCon, RpConDS, RpDefine, RpRave, IniFiles, Forms; > type > TDM = class(TDataModule) > IBDatabase1: TIBDatabase; > Trans: TIBTransaction; > procedure DataModuleCreate( Sender: TObject); > private > { Private declarations } > public > { Public declarations } > procedure Configura; > end; > var > DM: TDM; > implementation > uses > Windows; > {$R *.dfm} > { TDM } > procedure TDM.Configura; > var > stAplicacao : String; > Ini : TIniFile; > IniDBName : String; > IniUserName : String; > IniPassword : String; > begin > stAplicacao := ChangeFileExt( Application. ExeName, '.INI'); > Ini := TIniFile.Create( ChangeFileExt( Application. ExeName, '.INI')); > try > iniDBName := Ini.ReadString( 'BD', 'DATABASENAME' , ''); > iniUserName := Ini.ReadString( 'BD', 'USERNAME', ''); > iniPassword := Ini.ReadString( 'BD', 'PASSWORD', ''); > finally > Ini.Free; > end; > iniUserName := 'user_name=' + IniUserName; > iniPassword := 'password=' + iniPassword; > With IBDatabase1 do > begin > DatabaseName := iniDBName; > Params.Append( iniUserName) ; > Params.Append( iniPassword) ; > end; > end; > //Evento criado ao dar duplo clique no DataModule > procedure TDM.DataModuleCreat e(Sender: TObject); > begin > DM.Configura; > end; > end. > > No meu caso o Banco utilizado foi o Interbase e o componente de conexão > foi o IBDatabase. > > No cliente eu instalei manualmente o Interbase e registrei o banco de > dados da aplicação, levei o executável junto com o arquivo .ini e só. > > Grande abraço a todos. > > Angelo Louzada > > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para > armazenamento! > http://br.mail. yahoo.com/ > > [As partes desta mensagem que não continham texto foram removidas] > > [As partes desta mensagem que não continham texto foram removidas] > > > -- Leonardo Quinino [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: RES: [delphi-br] SOLUÇÃO para distribui ção de aplicativo com BD - Criação de arquivo INI
Blz, parabéns para você. - Mensagem original De: Davi Eduardo Borges Wall <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Sexta-feira, 25 de Janeiro de 2008 10:20:17 Assunto: RES: [delphi-br] SOLUÇÃO para distribuição de aplicativo com BD - Criação de arquivo INI Tamanha dificuldade? ? Vc ta brincando! Tem exemplos de como criar arquivo INI no Help do Delphi! Basta apertar F1, agora se a tecla F1 ta com problema, aconselho vc a ir no menu HELP do Delphi! RS... De: [EMAIL PROTECTED] os.com.br [mailto:[EMAIL PROTECTED] os.com.br] Em nome de Angelo Louzada Enviada em: sexta-feira, 25 de janeiro de 2008 11:12 Para: [EMAIL PROTECTED] os.com.br Assunto: [delphi-br] SOLUÇÃO para distribuição de aplicativo com BD - Criação de arquivo INI Amigos, pela tamanha dificuldade que tive em achar artigos explicando como criar instaladores já levando Banco de Dados no cliente resolvi optar pela distribuição através de arquivo .INI e pela dificuldade em achar artigos explicando como criar arquivo .INI venho compartilhar com vocês a solução que arrumei para minha aplicação. Primeiro criei um arquivo .INI no mesmo diretório dos fontes da aplicação. nome_do_arquivo. ini - Em nome_do_arquivo utilizei o mesmo nome do executável e dentro do arquivo criado coloquei os seguintes parametros: [BD] DATABASENAME= C:\Aplicacao\ database\ BANCO_DE_ DADOS.GDB USERNAME=SYSDBA PASSWORD=masterkey Na unit do DataModule ficou da seguinte maneira: unit frmDM; interface uses SysUtils, Classes, IBDatabase, DB, IBCustomDataSet, IBQuery, RpBase, RpSystem, RpCon, RpConDS, RpDefine, RpRave, IniFiles, Forms; type TDM = class(TDataModule) IBDatabase1: TIBDatabase; Trans: TIBTransaction; procedure DataModuleCreate( Sender: TObject); private { Private declarations } public { Public declarations } procedure Configura; end; var DM: TDM; implementation uses Windows; {$R *.dfm} { TDM } procedure TDM.Configura; var stAplicacao : String; Ini : TIniFile; IniDBName : String; IniUserName : String; IniPassword : String; begin stAplicacao := ChangeFileExt( Application. ExeName, '.INI'); Ini := TIniFile.Create( ChangeFileExt( Application. ExeName, '.INI')); try iniDBName := Ini.ReadString( 'BD', 'DATABASENAME' , ''); iniUserName := Ini.ReadString( 'BD', 'USERNAME', ''); iniPassword := Ini.ReadString( 'BD', 'PASSWORD', ''); finally Ini.Free; end; iniUserName := 'user_name=' + IniUserName; iniPassword := 'password=' + iniPassword; With IBDatabase1 do begin DatabaseName := iniDBName; Params.Append( iniUserName) ; Params.Append( iniPassword) ; end; end; //Evento criado ao dar duplo clique no DataModule procedure TDM.DataModuleCreat e(Sender: TObject); begin DM.Configura; end; end. No meu caso o Banco utilizado foi o Interbase e o componente de conexão foi o IBDatabase. No cliente eu instalei manualmente o Interbase e registrei o banco de dados da aplicação, levei o executável junto com o arquivo .ini e só. Grande abraço a todos. Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] SOLUÇÃO para distribuição de aplicativo com BD - C riação de arquivo INI
Amigos, pela tamanha dificuldade que tive em achar artigos explicando como criar instaladores já levando Banco de Dados no cliente resolvi optar pela distribuição através de arquivo .INI e pela dificuldade em achar artigos explicando como criar arquivo .INI venho compartilhar com vocês a solução que arrumei para minha aplicação. Primeiro criei um arquivo .INI no mesmo diretório dos fontes da aplicação. nome_do_arquivo.ini - Em nome_do_arquivo utilizei o mesmo nome do executável e dentro do arquivo criado coloquei os seguintes parametros: [BD] DATABASENAME=C:\Aplicacao\database\BANCO_DE_DADOS.GDB USERNAME=SYSDBA PASSWORD=masterkey Na unit do DataModule ficou da seguinte maneira: unit frmDM; interface uses SysUtils, Classes, IBDatabase, DB, IBCustomDataSet, IBQuery, RpBase, RpSystem, RpCon, RpConDS, RpDefine, RpRave, IniFiles, Forms; type TDM = class(TDataModule) IBDatabase1: TIBDatabase; Trans: TIBTransaction; procedure DataModuleCreate(Sender: TObject); private { Private declarations } public { Public declarations } procedure Configura; end; var DM: TDM; implementation uses Windows; {$R *.dfm} { TDM } procedure TDM.Configura; var stAplicacao : String; Ini : TIniFile; IniDBName : String; IniUserName : String; IniPassword : String; begin stAplicacao := ChangeFileExt(Application.ExeName, '.INI'); Ini := TIniFile.Create(ChangeFileExt(Application.ExeName, '.INI')); try iniDBName := Ini.ReadString('BD', 'DATABASENAME', ''); iniUserName := Ini.ReadString('BD', 'USERNAME', ''); iniPassword := Ini.ReadString('BD', 'PASSWORD', ''); finally Ini.Free; end; iniUserName := 'user_name=' + IniUserName; iniPassword := 'password=' + iniPassword; With IBDatabase1 do begin DatabaseName := iniDBName; Params.Append(iniUserName); Params.Append(iniPassword); end; end; //Evento criado ao dar duplo clique no DataModule procedure TDM.DataModuleCreate(Sender: TObject); begin DM.Configura; end; end. No meu caso o Banco utilizado foi o Interbase e o componente de conexão foi o IBDatabase. No cliente eu instalei manualmente o Interbase e registrei o banco de dados da aplicação, levei o executável junto com o arquivo .ini e só. Grande abraço a todos. Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] COMO INSTALAR A APLICAÇÃO NO CLIENTE???
Amigos, desenvolvir uma aplicação utilizando Delphi 7 + Interbase 6.5 + Rave Reports 5.0 Gostaria de saber como faço para instalar a aplicação no cliente, alguém saberia me dizer um passo à passo? Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Multiplicando colunas no Rave Reports
Achei algo que possa me ajudar, caso alguém precise estou postando os passos: a) declare as variaveis usadas no relatorio, no treeview do lado direito, mainpage, na propriedade: parameters. Coloque Total e Sub_Total b) coloque o componente CalcOp no DataView.DataBand. Este componente soma dois campos ou duas variaves e guarda o resultado em uma variavel daquelas que foram declaradas no item a. Na propriedade DestParam coloque Sub_Total. Para Multiplicar assinale a propriedade coMul do componente. c) coloque um componente DataText no DataView.DataBand. Assinale a propriedade Data Field Param.Sub_Total Este componente vai mostrar a variavel que foi multiplicada pelo componente CalcOp, item B. d) coloque um componente CalcTotal no DataView.DataBand. Assinale as propriedades CalcVar para CalcOp e Controller para o DataView.DataBand, assinale tambem a propriedade DestParam para Total (variavel declarada no item a) Assinale a propriedade RunningTotal para True. Este componente ira somar os resultados calculados pelo componente CalcOp e ira armazenar na variavel Total. e) Coloque um Band para sumarizar e neste band coloque um componente DataText e assinale a propriedade DataField Param.Total - Mensagem original De: Angelo Louzada <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quinta-feira, 24 de Janeiro de 2008 7:30:20 Assunto: [delphi-br] Multiplicando colunas no Rave Reports Amigos seguinte, tenho uma band de detalhe no Rave e nessa band tenho dois DataText o primeiro DataText tem a propriedade DATAFIELD lincado ao campo QUANTIDADE de minha tabela e o outro está lincado ao campo PRECOUNITARIO, gostaria de saber como faço para que logo ao lado do campo PRECOUNITARIO eu crio um TOTALITEM por exemplo, ou seja, preciso multiplicar a quantidade * precounitario e mostrar o resultado em uma nova coluna. Mais uma vez, valeu pela atenção. Att, Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Multiplicando colunas no Rave Reports
Amigos seguinte, tenho uma band de detalhe no Rave e nessa band tenho dois DataText o primeiro DataText tem a propriedade DATAFIELD lincado ao campo QUANTIDADE de minha tabela e o outro está lincado ao campo PRECOUNITARIO, gostaria de saber como faço para que logo ao lado do campo PRECOUNITARIO eu crio um TOTALITEM por exemplo, ou seja, preciso multiplicar a quantidade * precounitario e mostrar o resultado em uma nova coluna. Mais uma vez, valeu pela atenção. Att, Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Multiplicando colunas no Rave Reports
Amigos seguinte, tenho uma band de detalhe no Rave e nessa band tenho dois DataText o primeiro DataText tem a propriedade DATAFIELD lincado ao campo QUANTIDADE de minha tabela e o outro está lincado ao campo PRECOUNITARIO, gostaria de saber como faço para que logo ao lado do campo PRECOUNITARIO eu crio um TOTALITEM por exemplo, ou seja, preciso multiplicar a quantidade * precounitario e mostrar o resultado em uma nova coluna. Mais uma vez, valeu pela atenção. Att, Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Dúvida SQL
Opa, montei o relacionamento da seguinte forma SELECT TCLIENTE.NOMECLIENTE, TMOV.DATAENTRADA, TMOV.HORAENTRADA, TMOV.HORASAIDA, TMOV.ID, TPRECO.DESCRICAO, TPRECO.VALOR, TMOV.VALORTOTAL, TPRODUTO.DESCRICAO, TITMOV.QUANTIDADE, TITMOV.PRECOUNITARIO FROM TMOV FULL OUTER JOIN TITMOV ON TMOV.ID = TITMOV.IDMOV FULL OUTER JOIN TCLIENTE ON TMOV.IDCLIENTE = TCLIENTE.ID FULL OUTER JOIN TPRODUTO ON TITMOV.IDPRODUTO = TPRODUTO.ID FULL OUTER JOIN TPRECO ON TMOV.IDPRECO = TPRECO.ID WHERE TMOV.POSICAO = 'F' AND TMOV.DATA_INC = '01/23/2008' ORDER BY TMOV.ID mais será que essa é a melhor forma de resolver isso? Utilizando o OUTER JOIN? - Mensagem original ---- De: Angelo Louzada <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Quarta-feira, 23 de Janeiro de 2008 14:37:46 Assunto: [delphi-br] Dúvida SQL Amigos, estou com uma dúvida de relacionamento que é o seguinte, tenho a seguinte sentença: SELECT TCLIENTE.NOMECLIENT E, TMOV.DATAENTRADA, TMOV.HORAENTRADA, TMOV.HORASAIDA, TMOV.ID, TPRECO.DESCRICAO, TPRECO.VALOR, TMOV.VALORTOTAL, TPRODUTO.DESCRICAO, TITMOV.QUANTIDADE, TITMOV.PRECOUNITARI O FROM TMOV, TITMOV, TCLIENTE, TPRODUTO, TPRECO WHERE TMOV.ID = TITMOV.IDMOV AND TMOV.IDCLIENTE = TCLIENTE.ID AND TMOV.IDPRECO = TPRECO.ID AND TITMOV.IDPRODUTO = TPRODUTO.ID AND TMOV.POSICAO = 'F' AND TMOV.DATA_INC = :Data_Inc ORDER BY TMOV.ID Nessa sentença eu tenho uma tabela de movimento (TMOV) que relaciona com a tabela de cliente (TCLIENTE), preço (TPRECO) e itens do movimento (TITMOV), e a tabela (TITMOV) relaciona com a tabela de produto (TPRODUTO), porém nem sempre todo movimento terá itens consumidos, mais eu preciso que mostre os demais campos (NOMECLIENTE, DATAENTRADA, HORAENTRADA. ..). Quando eu executo esse script no Interbase ele só me traz os registros que além de atender minhas excessões da where tem que conter registros em todas as tabelas. Como eu contorno isso, ou seja, como faço para me retornar dados mesmo quando meu movimento não tiver itens? Só para esclarecer, minha tabela de movimento registra a entrada e saída de clientes e quando um cliente entra ele pode consumir determinados produtos ou não que são controlados pela tabela de itens (TITMOV). Grande abraço, Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Dúvida SQL
Amigos, estou com uma dúvida de relacionamento que é o seguinte, tenho a seguinte sentença: SELECT TCLIENTE.NOMECLIENTE, TMOV.DATAENTRADA, TMOV.HORAENTRADA, TMOV.HORASAIDA, TMOV.ID, TPRECO.DESCRICAO, TPRECO.VALOR, TMOV.VALORTOTAL, TPRODUTO.DESCRICAO, TITMOV.QUANTIDADE, TITMOV.PRECOUNITARIO FROM TMOV, TITMOV, TCLIENTE, TPRODUTO, TPRECO WHERE TMOV.ID = TITMOV.IDMOV AND TMOV.IDCLIENTE = TCLIENTE.ID AND TMOV.IDPRECO = TPRECO.ID AND TITMOV.IDPRODUTO = TPRODUTO.ID AND TMOV.POSICAO = 'F' AND TMOV.DATA_INC = :Data_Inc ORDER BY TMOV.ID Nessa sentença eu tenho uma tabela de movimento (TMOV) que relaciona com a tabela de cliente (TCLIENTE), preço (TPRECO) e itens do movimento (TITMOV), e a tabela (TITMOV) relaciona com a tabela de produto (TPRODUTO), porém nem sempre todo movimento terá itens consumidos, mais eu preciso que mostre os demais campos (NOMECLIENTE, DATAENTRADA, HORAENTRADA...). Quando eu executo esse script no Interbase ele só me traz os registros que além de atender minhas excessões da where tem que conter registros em todas as tabelas. Como eu contorno isso, ou seja, como faço para me retornar dados mesmo quando meu movimento não tiver itens? Só para esclarecer, minha tabela de movimento registra a entrada e saída de clientes e quando um cliente entra ele pode consumir determinados produtos ou não que são controlados pela tabela de itens (TITMOV). Grande abraço, Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Dúvida na utilização do IBQuery - URGENTE
Amigo, ESTOQUE dentro do select está apenas como alias do campo TPRODUTO.QUANTIDADE mais só por curiosidade eu já tirei o alias fazendo referencia apenas no campo QUANTIDADE e mesmo assim me retorna 0, ficando da seguinte forma: strSql := 'SELECT TPRODUTO.ID, TPRODUTO.DESCRICAO, TPRODUTO.QUANTIDADE '; strSql := strSql + 'FROM TMOV, TITMOV, TPRODUTO '; strSql := strSql + 'WHERE TMOV.ID = TITMOV.IDMOV '; strSql := strSql + 'AND TITMOV.IDPRODUTO = TPRODUTO.ID '; strSql := strSql + 'AND TPRODUTO.ID = ' + IntToStr(IdProduto) ; With IBQueryEstoque do begin Close; SQL.Clear; SQL.Add(strSql) ; Open; end; EstoqueAtual := IBQueryEstoque. FieldByName( 'QUANTIDADE' ).AsFloat; - Mensagem original De: Ricardo LG Para: [EMAIL PROTECTED] os.com.br Enviadas: Terça-feira, 15 de Janeiro de 2008 15:35:36 Assunto: Re: [delphi-br] Dúvida na utilização do IBQuery Desculpe Angelo Dentro do seu select você não tem um campo ESTOQUE apenas a quantidade. Por isso o valor 0. nesse caso acredito que você deveria fazer ou um select sum(Quantidade) as estoque, em outra query. Em 15/01/08, Angelo Louzada escreveu: > > Amigos, estou utilizando Delphi 7 + Interbase 6 e estou com uma dúvida: > > No Interbase quando eu executo o script abaixo me retorna o resultado > correto. > > SELECT TPRODUTO.ID <http://tproduto. id/>, TPRODUTO.DESCRICAO, > TPRODUTO.QUANTIDADE > FROM TMOV, TITMOV, TPRODUTO > WHERE TMOV.ID <http://tmov. id/> = TITMOV.IDMOV > AND TITMOV.IDPRODUTO = TPRODUTO.ID <http://tproduto. id/> > AND TPRODUTO.ID <http://tproduto. id/> = 13 > > Eu preciso acessar o valor do campo tproduto.quantidade no delphi e para > isso estou fazendo da seguinte maneira: > > strSql := 'SELECT TPRODUTO.ID <http://tproduto. id/>, TPRODUTO.DESCRICAO, > TPRODUTO.QUANTIDADE '; > strSql := strSql + 'FROM TMOV, TITMOV, TPRODUTO '; > strSql := strSql + 'WHERE TMOV.ID <http://tmov. id/> = TITMOV.IDMOV '; > strSql := strSql + 'AND TITMOV.IDPRODUTO = TPRODUTO.ID<http://tproduto. id/>'; > strSql := strSql + 'AND TPRODUTO.ID <http://tproduto. id/> = ' + > IntToStr(IdProduto) ; > With IBQueryEstoque do > begin > Close; > SQL.Clear; > SQL.Add(strSql) ; > Open; > end; > > strSql é uma variável do tipo String, IdProduto é uma variável que possui > o ID do produto que selecionei em um grid. > > IdProduto := IBQueryMovimento. FieldByName( 'CODPRODUTO' ).AsInteger; > > Em modo de depuração eu passo o mouse em cima da variável strSql após o > recebimento de todo o sql e certifico que o mesmo recebeu de forma correta o > valor do id do produto ficando exatamente igual ao script que testei no > Interbase. > > A grande questão: Declarei uma variável do tipo Double chamada > EstoqueAtual para receber o valor do campo TPRODUTO.QUANTIDADE da seguinte > forma: > > EstoqueAtual := IBQueryEstoque. FieldByName( 'ESTOQUE' ).AsFloat; > > Só que o valor retornado é sempre 0 e quando rodo o script no Interbase > tenho a absoluta certeza que possuo valor no campo, nesse exemplo era para > obter o valor 78. > > Alguém sabe me dizer aonde estou errando? > > Abraço a todos. > > Angelo Louzada > > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para > armazenamento! > http://br.mail. yahoo.com/ > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail. yahoo.com/ [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Dúvida na utilização do IBQue ry
Amigo, ESTOQUE dentro do select está apenas como alias do campo TPRODUTO.QUANTIDADE mais só por curiosidade eu já tirei o alias fazendo referencia apenas no campo QUANTIDADE e mesmo assim me retorna 0, ficando da seguinte forma: strSql := 'SELECT TPRODUTO.ID, TPRODUTO.DESCRICAO, TPRODUTO.QUANTIDADE '; strSql := strSql + 'FROM TMOV, TITMOV, TPRODUTO '; strSql := strSql + 'WHERE TMOV.ID = TITMOV.IDMOV '; strSql := strSql + 'AND TITMOV.IDPRODUTO = TPRODUTO.ID '; strSql := strSql + 'AND TPRODUTO.ID = ' + IntToStr(IdProduto); With IBQueryEstoque do begin Close; SQL.Clear; SQL.Add(strSql); Open; end; EstoqueAtual := IBQueryEstoque.FieldByName('QUANTIDADE').AsFloat; - Mensagem original De: Ricardo LG <[EMAIL PROTECTED]> Para: delphi-br@yahoogrupos.com.br Enviadas: Terça-feira, 15 de Janeiro de 2008 15:35:36 Assunto: Re: [delphi-br] Dúvida na utilização do IBQuery Desculpe Angelo Dentro do seu select você não tem um campo ESTOQUE apenas a quantidade. Por isso o valor 0. nesse caso acredito que você deveria fazer ou um select sum(Quantidade) as estoque, em outra query. Em 15/01/08, Angelo Louzada escreveu: > > Amigos, estou utilizando Delphi 7 + Interbase 6 e estou com uma dúvida: > > No Interbase quando eu executo o script abaixo me retorna o resultado > correto. > > SELECT TPRODUTO.ID <http://tproduto. id/>, TPRODUTO.DESCRICAO, > TPRODUTO.QUANTIDADE > FROM TMOV, TITMOV, TPRODUTO > WHERE TMOV.ID <http://tmov. id/> = TITMOV.IDMOV > AND TITMOV.IDPRODUTO = TPRODUTO.ID <http://tproduto. id/> > AND TPRODUTO.ID <http://tproduto. id/> = 13 > > Eu preciso acessar o valor do campo tproduto.quantidade no delphi e para > isso estou fazendo da seguinte maneira: > > strSql := 'SELECT TPRODUTO.ID <http://tproduto. id/>, TPRODUTO.DESCRICAO, > TPRODUTO.QUANTIDADE '; > strSql := strSql + 'FROM TMOV, TITMOV, TPRODUTO '; > strSql := strSql + 'WHERE TMOV.ID <http://tmov. id/> = TITMOV.IDMOV '; > strSql := strSql + 'AND TITMOV.IDPRODUTO = TPRODUTO.ID<http://tproduto. id/>'; > strSql := strSql + 'AND TPRODUTO.ID <http://tproduto. id/> = ' + > IntToStr(IdProduto) ; > With IBQueryEstoque do > begin > Close; > SQL.Clear; > SQL.Add(strSql) ; > Open; > end; > > strSql é uma variável do tipo String, IdProduto é uma variável que possui > o ID do produto que selecionei em um grid. > > IdProduto := IBQueryMovimento. FieldByName( 'CODPRODUTO' ).AsInteger; > > Em modo de depuração eu passo o mouse em cima da variável strSql após o > recebimento de todo o sql e certifico que o mesmo recebeu de forma correta o > valor do id do produto ficando exatamente igual ao script que testei no > Interbase. > > A grande questão: Declarei uma variável do tipo Double chamada > EstoqueAtual para receber o valor do campo TPRODUTO.QUANTIDADE da seguinte > forma: > > EstoqueAtual := IBQueryEstoque. FieldByName( 'ESTOQUE' ).AsFloat; > > Só que o valor retornado é sempre 0 e quando rodo o script no Interbase > tenho a absoluta certeza que possuo valor no campo, nesse exemplo era para > obter o valor 78. > > Alguém sabe me dizer aonde estou errando? > > Abraço a todos. > > Angelo Louzada > > Abra sua conta no Yahoo! Mail, o único sem limite de espaço para > armazenamento! > http://br.mail. yahoo.com/ > > [As partes desta mensagem que não continham texto foram removidas] > > > [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
[delphi-br] Dúvida na utilização do IBQuery
Amigos, estou utilizando Delphi 7 + Interbase 6 e estou com uma dúvida: No Interbase quando eu executo o script abaixo me retorna o resultado correto. SELECT TPRODUTO.ID, TPRODUTO.DESCRICAO, TPRODUTO.QUANTIDADE FROM TMOV, TITMOV, TPRODUTO WHERE TMOV.ID = TITMOV.IDMOV AND TITMOV.IDPRODUTO = TPRODUTO.ID AND TPRODUTO.ID = 13 Eu preciso acessar o valor do campo tproduto.quantidade no delphi e para isso estou fazendo da seguinte maneira: strSql := 'SELECT TPRODUTO.ID, TPRODUTO.DESCRICAO, TPRODUTO.QUANTIDADE '; strSql := strSql + 'FROM TMOV, TITMOV, TPRODUTO '; strSql := strSql + 'WHERE TMOV.ID = TITMOV.IDMOV '; strSql := strSql + 'AND TITMOV.IDPRODUTO = TPRODUTO.ID '; strSql := strSql + 'AND TPRODUTO.ID = ' + IntToStr(IdProduto); With IBQueryEstoque do begin Close; SQL.Clear; SQL.Add(strSql); Open; end; strSql é uma variável do tipo String, IdProduto é uma variável que possui o ID do produto que selecionei em um grid. IdProduto := IBQueryMovimento.FieldByName('CODPRODUTO').AsInteger; Em modo de depuração eu passo o mouse em cima da variável strSql após o recebimento de todo o sql e certifico que o mesmo recebeu de forma correta o valor do id do produto ficando exatamente igual ao script que testei no Interbase. A grande questão: Declarei uma variável do tipo Double chamada EstoqueAtual para receber o valor do campo TPRODUTO.QUANTIDADE da seguinte forma: EstoqueAtual := IBQueryEstoque.FieldByName('ESTOQUE').AsFloat; Só que o valor retornado é sempre 0 e quando rodo o script no Interbase tenho a absoluta certeza que possuo valor no campo, nesse exemplo era para obter o valor 78. Alguém sabe me dizer aonde estou errando? Abraço a todos. Angelo Louzada Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]
Res: [delphi-br] Procedimentos de outro form
Tem sim amigo e é bem simples, primeiro você adiciona a unit do formulário principal no form que você está trabalhando, ALT + F11, depois é só fazer referêcia do form principal e de seus objetos. Ex. FormPrincipal.QualquerCoisaQueEstiverNoFormPrincipal. - Mensagem original De: Thiago Pereira Menzani <[EMAIL PROTECTED]> Para: [EMAIL PROTECTED] Enviadas: Segunda-feira, 14 de Janeiro de 2008 18:59:18 Assunto: [delphi-br] Procedimentos de outro form Ola, Tenho varios forms e um principal, como faço para utilizar procedures do form(unit) principal nos outros forms?? Exemplo: Em vários forms, quero utilizar no evento onEnter de um edit um procedimento que esta no form principal ??? Tem como Grato - - --- Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! [As partes desta mensagem que não continham texto foram removidas] Abra sua conta no Yahoo! Mail, o único sem limite de espaço para armazenamento! http://br.mail.yahoo.com/ [As partes desta mensagem que não continham texto foram removidas]