[delphi-br] Off Topic Converter função de VB p/ Delphi
Alguém poderia me ajudar a converter esta função? VB Public Function binret(s1 As String, i1 As Integer) As Double Dim l1 As Double Dim i2 As Integer Dim i3 As Integer l1 = 0 For i2 = 1 To i1 i3 = Asc(Mid$(s1, i2, 1)) l1 = l1 + (i3 * (256 ^ (i1 - i2))) Next binret = l1 End Function Delphi Function binret(s1 : string; i1 : Integer) : Double; var l1 : Double; i2 : Integer; i3 : Integer; begin l1 := 0; For i2 := 1 To i1 do begin i3 := ord(copy(s1, i2, 1)[1]); l1 := l1 + (i3 * (?)); end; binret := l1; End; Agradeço antecipadamente.
[delphi-br] OFF TOPIC) Alguém da lista trabalha na Alterdata?
Responda em PVT.
[delphi-br] Assunto repetido?
Esta pergunta é para aqueles que assinam a revista a algum tempo. O assunto da revista nº 103 é o mesmo da revista nº 70?
[delphi-br] Aprender IntraWeb
Alguém poderia me indicar om livro/apostila para desenvolvimento de sistemas IntraWeb em Delphi 7? Já baixei o exemplo do Bruno, mas quando vou abrí-lo dá erro. Obrigado.
[delphi-br] Software de backup Firebird grátis
Na lista Firebase foi postada a seguinte divulgação: Olá a todos da lista! Andei desaparecido por uns tempos, mas estou aqui novamente. Estou disponibilizando gratuitamente para todo mundo, a já conhecida de toda comunidade a ferramenta de agendamento de backup IBFireBackup esta é a versão 2.7.5.42 [Beta 3] Apesar de ser uma versão beta é uma versão bastante estável. É que os meus Milestones funcionam de uma forma peculiar, a saber, é o seguinte: Milestones de Projeto Alpha 1- Descrição do software, Diagramas, Flowcharts, Especificações do usuário levantamento de requisitos etc. Alpha 2 Design básico, Interfaces, Core units, units principais... Alpha 3 Interface gráfica do usuário. Entre o Final de Alpha 1 e término de Alpha 3 há bastante codificação. Depois vem a fase Beta que equivale ao seguinte: Beta 1 - Testes pelo desenvolvedor (minha pessoa), correção de bugs... Beta 2 Testes exaustivos por quem desenvolve e/ou ajuda a manter o produto, Testes com meus bancos de dados de teste e produção inhouse, aqui em meu laboratório e em clientes meus que usam InterBase ou Firebird em seus servidores... Beta -3 Teste de campo por parte dos clientes, pessoas que licenciaram o produto, debug intensivo etc. Daí vem os Releases Candidates RC 1- Correção de bugs reportados pelos usuários e Clientes (se houverem). RC 2 - Adicionar melhorias relatadas ou funcionalidades exigidas pelos usuários, debug intensivo novamente. RC 3- Rechecagem de tudo que é reportado pelos usuários e procura por regressões. Pré Release - Aprovação pelo usuário. Após isso e finalmente o release oficial. Por tanto, não devem se preocupar por ser uma versão dita como Beta, pois está bastante estável esta versão. Procuro usar os melhores paradigmas de engenharia de software neste produto que tenho mantido já há alguns anos, uso Controle de Versão JVCS e muitas ferramentas de debug para asseverar um produto de qualidade. Esta versão é INTEIRAMENTE GRATUITA! NÃO HÁ LIMITAÇÕES DE NENHUMA ESPÉCIE, NEM TRAVAS NEM EXPIRA APÓS UM PRASO! Pelo que eu saiba é a única ferramenta de backup que funciona integralmente com InterBase de 4.x.x até a versão 2007 e todas as versões de Firebird de 1.0.x até 2.x.x e que ainda está sendo mantida e desenvolvida continuamente. Agradeço a todos os que licenciaram as versões pagas e não temam em fazer um upgrade. Problemas conhecidos que não são limitações intencionais e sim problemas que eu estou procurando resolver. - Esta versão NÃO suporta versões antigas do Windows tais como Win95, Win95OSR2, Windows98, Windows98SE e Windows ME. - O engine principal do IBFireBackup não roda como um serviço do Windows (ainda), então é preciso se logar no servidor para a aplicação se auto executar. Logo o motor principal do sistema vai rodar como um serviço e vai se levantar com o server sendo ligado sem a necessidade de se logar no servidor mas isso esá agendado para o futuro. - É impossível ter duas instâncias do IBFireBackup executadas ao mesmo tempo o que torna impossível fazer backup de mais de um banco ao mesmo tempo, eu estou resolvendo isso também pois a versão 3.0 terá suporte a múltiplos bancos de dados no mesmo servidor, inclusive se forem versões diferentes do FB escutando em portas diferentes e também de servidores com IB e Firebird juntos. Leiam o changelog.txt para maiores detalhes. Peço que, por favor, não encham a lista de discussão com posts como manda para mim!, manda para mim também!. O Software está disponível no site firebase www.firebase.com.br na seção de downloads subseção ferramentas de backup façam o download por lá! Tem um link na página principal que o Carlos H. Cantu gentilmente cedeu ATENÇÃO o link é IBFireBackup 2.7.5.42 [Beta 3] NÃO CONFUNDIR COM Firebackup que é outro produto totalmente distinto. Peço também que, por favor, não discutam sobre o software aqui na lista, qualquer problema ou demais informações mandem um email para marcelosoftware em yahoo.com.br todas as críticas e sugestões são válidas! Assim como reporte de algum bug encontrado. Se alguém desejar suporte integral ou apreciar meu trabalho, doações monetárias são mais que bem vidas, pois ajudam no custeio do tempo despendido (noites de sono) fora demais recursos como servidores, ferramentas etc. Tudo isto custa grana, assim se alguém puder ajudar com qualquer valor ajudará em eu poder sempre manter e lançar novos releases para a comunidade e todos se beneficiarem. Se alguém tiver este interesse mande um email para mim em marcelosoftware em yahoo.com.br que eu explico como proceder em um eventual depósito. Agradeço a todos Marcelo Fortes.
[delphi-br] vb x Delphi
Por favor, só respondam quem conhece estas duas ferramentas. Trabalho com delphi há 11 anos (fiz o curso de Delphi2 e desde então venho trabalhando com esta ferramenta) e a 3 anos a empresa que trabalho se juntou a outra que tem alguns sistemas em VB. Hoje o gerente veio me perguntar quais as vantagens do Delphi em relação ao VB (acho que ele quer converter os programas para Delphi). Disse dos componentes, que o programa pode que roda em desktop, pode rodar em internet (via tcp/ip), não precisa gerar instalador sempre que coloca um componente novo, mostrei o sqlconnection, escreve-se menos, multi-camadas. Só que programo sozinho fazendo sistemas desktop e não sei todas vantagens do Delphi. Amanhã vou ter uma reunião com ele e gostaria de ir com mais argumentos para convencê-lo. Poderiam me ajudar. REPETINDO: Por favor, só respondam quem conhece estas duas ferramentas. Agradço antecipadamente.
[delphi-br] Inclusão em chave composta
Tenho a seguinte tabela: campo1(chave) campo2 No formshow monto a query assim: with DM.qryManut do begin sql.clear; sql.add('SELECT CAMPO1, CAMPO2 FROM TABELA'); sql.add(' WHERE CAMPO1 = :pcampo1'); end; No botão de inclusão tenho a seguinte rotina: with DM.cdsManut do begin if not Active then begin DM.qryManut.parambyname('pcampo1').asinteger := strtoint(trim (meCodigo.text)); open; end; if consulta then edit else insert; fieldbyname('CAMPO1').asinteger := strtoint(trim(meCodigo.Text)); fieldbyname('CAMPO2').asstring := trim(edtDescr.Text); post; end; Se selecionar no campo1 = 5 e quiser alterar para 6, funciona legal, ou seja, altera a chave. Porém em outra tela tenho a seguinte tabela campo1(chave) campo2(chave) campo3 campo4 campo5 No formshow monto a query with DM.qryManut do begin sql.clear; sql.add('SELECT CAMPO1, CAMPO2, CAMPO3, CAMPO4 ,CAMPO5 FROM TABELA'); sql.add(' WHERE CAMPO1 = :pcampo1'); sql.add(' WHERE CAMPO2 = :pcampo2'); end; No botão de inclusão tenho a seguinte rotina with DM.cdsManut do begin if not Active then begin DM.qryManut.parambyname('pcampo1').asinteger := strtoint(trim (meCodigo1.text)); DM.qryManut.parambyname('pcampo2').asinteger := strtoint(trim (meCodigo2.text)); open; end; if consulta then edit else insert; fieldbyname('CAMPO1').asinteger := strtoint(trim (meCodigo1.Text)); fieldbyname('CAMPO2').asinteger := strtoint(trim (meCodigo2.Text)); fieldbyname('CAMPO3').asstring := trim(descr1.Text); fieldbyname('CAMPO4').asstring := trim(descr2.Text); fieldbyname('CAMPO5').asstring := trim(descr3.Text); post; end; Se selecionar no campo1 = 5 e campo2 = 5 e quiser alterar o campo2 para 6, não funciona. Inclui um novo registro. Ou seja, quando é chave composta ele não altera, inclui. Alguem sabe se tenho que alterar alguma propriedade no CDS, DSP ou Query? Uso D7 e edit´s e maskedit´s. Estou perguntando, pois talvez não seja necessário fazer o INSERT/UPDATE na mão. Obrigado.
[delphi-br] Erro de arredondamento (Resolvido)
uses math; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var tx : double; begin tx := strtofloat(edit1.text); tx := roundto(tx + 0.1,-2); edit2.text := floattostr(tx); end; Agradeço a todos pelas colaborações.
[delphi-br] Erro de arredondamento
Tenho um relatório que faz o seguinte cálculo: taxa1 e taxa2 : double; taxa1 := 161,5 * (3 /100); (resultado = 4,845) taxa2 := strtofloat(formatfloat('#0.00',taxa1)); Na primeira vez que executo o programa o resultado da taxa2 = 4,80 . Se o usuário rodar o relatório novamente, SEM SAIR DO SISTEMA, o reultado da taxa2 = 4,85 Baseado nisso, resolvi fazer o seguinte teste: criei uma aplicação nova, coloquei 2 edit´s e 1 botão e fiz o seguinte: procedure TForm1.Button1Click(Sender: TObject); var tx : double; begin tx := strtofloat(edit1.text); tx := round(tx); edit2.text := floattostr(tx); end; se edit1 = 1,5 - edit2 = 2 se edit1 = 2,5 - edit2 = 2 se edit1 = 3,5 - edit2 = 4 se edit1 = 4,5 - edit2 = 4 ou seja, quando a parte inteira é impar arredonda. Alguém poderia me explicar? Testei no D7. Agradeço antecipadamente.
[delphi-br] Dica: colorir PageControl
colocar PageControl1.OwnerDraw := True; procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin {//pinta a fonte case TabIndex of 0: Control.Canvas.Font.Color:=clgreen; 1: Control.Canvas.Font.Color:=clred; 2: Control.Canvas.Font.Color:=clblue; end; } // pinta a paleta / aba case TabIndex of 0: Control.Canvas.brush.Color:=clgreen; 1: Control.Canvas.brush.Color:=clred; 2: Control.Canvas.brush.Color:=clblue; end; PageControl1.Canvas.Rectangle(Rect); Control.Canvas.font.Color:=clwhite; Control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages [tabind ex].Caption); // pinta a parte interna (tabsheet) PageControl1.Pages[TabIndex].brush.Color := Control.Canvas.brush.Color; end; // se quiser pintar a parte interna, colocar tambem procedure TForm1.FormShow(Sender: TObject); begin PageControl1.Pages[0].brush.Color := clgreen; end; Se puder melhorar, coloquem aqui na lista. Gostaria de pedir-lhes para colocar nos sites de consultas de dicas. No linhadecodigo já enviei e no delphi.eti.br(planetadelphi) está lotado. Agradeço antecipadamente.
[delphi-br] Dica: colorir PageControl (melhorado)
colocar PageControl1.OwnerDraw := True; procedure TForm1.PageControl1DrawTab(Control: TCustomTabControl; TabIndex: Integer; const Rect: TRect; Active: Boolean); begin //pinta a fonte case TabIndex of 0: Control.Canvas.Font.Color:=clwhite; 1: Control.Canvas.Font.Color:=clyellow; 2: Control.Canvas.Font.Color:=claqua; end; // pinta a paleta / aba case TabIndex of 0: Control.Canvas.brush.Color:=clgreen; 1: Control.Canvas.brush.Color:=clred; 2: Control.Canvas.brush.Color:=clblue; end; PageControl1.Canvas.Rectangle(Rect); Control.Canvas.font.Color:=clwhite; Control.Canvas.TextOut(Rect.left+5,Rect.top+3,PageControl1.Pages [tabindex].Caption); // pinta a parte interna (tabsheet) PageControl1.Pages[TabIndex].brush.Color := Control.Canvas.brush.Color; end; // se quiser pintar a parte interna, colocar tambem procedure TForm1.FormShow(Sender: TObject); begin PageControl1.Pages[0].brush.Color := clgreen; end; Se puder melhorar, coloquem aqui na lista. Gostaria de pedir-lhes para colocar nos sites de consultas de dicas. No linhadecodigo já enviei e no delphi.eti.br(planetadelphi) está lotado. Agradeço antecipadamente.
[delphi-br] DBExpress x transação
Tenho um sistema D7 + FB 1.5.2 + DBX. Numa tela de cadastro (codigo e descrição) faço várias inclusões/alterações e quando rodo o gstat - h -t tabela -z banco.fdb tenho o seguite resultado: oldest active=4000 , next transaction=4010 , ou seja, tenho 10 transações abertas. Se saio do sistema e entro, quando abro um ClienteDataset, o resultado é oldest active=4011 , next transaction= 4012. Como podem observar, abro uma transação para cada applyupdate. Alguém já observou isso? Será que falta algum detalhe para o sqlconnection fechar a transação? Segue uma pequena parte da lógica: tela de cadastro procedure TCadSind.FormShow(Sender: TObject); begin with DM.qryManut do begin sql.clear; sql.add('SELECT CODSIND, NOMESIND FROM SINDICATO'); sql.add(' WHERE CODSIND = :pcodsind'); end; cdsGrid.open; -- atualiza o oldest transaction end; procedure TCadSind.btIncAltClick(Sender: TObject); begin with DM.cdsManut do begin if btIncAlt.caption = 'Incluir' then insert else if btIncAlt.caption = 'Alterar' then edit; fieldbyname('CODSIND').asinteger := strtoint(trim (meCodigo.Text)); fieldbyname('NOMESIND').asstring := trim(edtNome.Text); post; end; end; DataModulo procedure TDM.cdsManutAfterPost(DataSet: TDataSet); begin with cdsManut do begin transacao.TransactionID := 1; transacao.IsolationLevel := xilREADCOMMITTED; if not Conexao.InTransaction then Conexao.StartTransaction(Transacao); ApplyUpdates(0); if ApplyUpdates(0) = 0 then begin try Conexao.Commit(Transacao); except Conexao.Rollback(Transacao); end; end; end; end; -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Re: Numero fisico do HD
//serial físico, aquele que vem de fábrica e não muda depois da formatação function GetIdeDiskSerialNumber : String; type TSrbIoControl = packed record HeaderLength : ULONG; Signature: Array[0..7] of Char; Timeout : ULONG; ControlCode : ULONG; ReturnCode : ULONG; Length : ULONG; end; SRB_IO_CONTROL = TSrbIoControl; PSrbIoControl = ^TSrbIoControl; TIDERegs = packed record bFeaturesReg : Byte; // especificar comandos SMART bSectorCountReg : Byte; // registro de contador de setor bSectorNumberReg : Byte; // registro de número de setores bCylLowReg : Byte; // valor de cilindro (byte mais baixo) bCylHighReg : Byte; // valor de cilindro (byte mais alto) bDriveHeadReg: Byte; // registro de drive/cabeça bCommandReg : Byte; // comando IDE bReserved: Byte; // reservado- tem que ser zero end; IDEREGS = TIDERegs; PIDERegs = ^TIDERegs; TSendCmdInParams = packed record cBufferSize : DWORD; irDriveRegs : TIDERegs; bDriveNumber : Byte; bReserved: Array[0..2] of Byte; dwReserved : Array[0..3] of DWORD; bBuffer : Array[0..0] of Byte; end; SENDCMDINPARAMS = TSendCmdInParams; PSendCmdInParams = ^TSendCmdInParams; TIdSector = packed record wGenConfig : Word; wNumCyls : Word; wReserved : Word; wNumHeads : Word; wBytesPerTrack : Word; wBytesPerSector: Word; wSectorsPerTrack : Word; wVendorUnique : Array[0..2] of Word; sSerialNumber : Array[0..19] of Char; wBufferType: Word; wBufferSize: Word; wECCSize : Word; sFirmwareRev : Array[0..7] of Char; sModelNumber : Array[0..39] of Char; wMoreVendorUnique : Word; wDoubleWordIO : Word; wCapabilities : Word; wReserved1 : Word; wPIOTiming : Word; wDMATiming : Word; wBS: Word; wNumCurrentCyls: Word; wNumCurrentHeads : Word; wNumCurrentSectorsPerTrack : Word; ulCurrentSectorCapacity: ULONG; wMultSectorStuff : Word; ulTotalAddressableSectors : ULONG; wSingleWordDMA : Word; wMultiWordDMA : Word; bReserved : Array[0..127] of Byte; end; PIdSector = ^TIdSector; const IDE_ID_FUNCTION = $EC; IDENTIFY_BUFFER_SIZE = 512; DFP_RECEIVE_DRIVE_DATA= $0007c088; IOCTL_SCSI_MINIPORT = $0004d008; IOCTL_SCSI_MINIPORT_IDENTIFY = $001b0501; DataSize = sizeof(TSendCmdInParams)-1+IDENTIFY_BUFFER_SIZE; BufferSize = SizeOf(SRB_IO_CONTROL)+DataSize; W9xBufferSize = IDENTIFY_BUFFER_SIZE+16; var hDevice : THandle; cbBytesReturned : DWORD; pInData : PSendCmdInParams; pOutData : Pointer; // PSendCmdOutParams Buffer : Array[0..BufferSize-1] of Byte; srbControl : TSrbIoControl absolute Buffer; procedure ChangeByteOrder( var Data; Size : Integer ); var ptr : PChar; i : Integer; c : Char; begin ptr := @Data; for i := 0 to (Size shr 1)-1 do begin c := ptr^; ptr^ := (ptr+1)^; (ptr+1)^ := c; Inc(ptr,2); end; end; begin Result := ''; FillChar(Buffer,BufferSize,#0); if Win32Platform=VER_PLATFORM_WIN32_NT then // Windows NT, Windows 2000, Windows XP begin // recuperar handle da porta SCSI hDevice := CreateFile('\\.\Scsi0:', // Nota: '\\.\C:' precisa de privilégios administrativos GENERIC_READ or GENERIC_WRITE, FILE_SHARE_READ or FILE_SHARE_WRITE, nil, OPEN_EXISTING, 0, 0); if hDevice=INVALID_HANDLE_VALUE then Exit; try srbControl.HeaderLength := SizeOf(SRB_IO_CONTROL); System.Move('SCSIDISK',srbControl.Signature,8); srbControl.Timeout := 2; srbControl.Length := DataSize; srbControl.ControlCode := IOCTL_SCSI_MINIPORT_IDENTIFY; pInData := PSendCmdInParams(PChar(@Buffer) +SizeOf(SRB_IO_CONTROL)); pOutData := pInData; with pInData^ do begin cBufferSize := IDENTIFY_BUFFER_SIZE; bDriveNumber := 0; with irDriveRegs do begin bFeaturesReg := 0; bSectorCountReg := 1; bSectorNumberReg := 1; bCylLowReg := 0; bCylHighReg := 0; bDriveHeadReg:= $A0;
[delphi-br] [Off Topic] Hint dos componentes
Tive que reinstalar o D7 e não está aparecendo o hint dos componentes. Já pesquisei em tools/environment e tools/editor. Alguém pode me ajudar? Obrigado. -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Re: Imprimir DbGrid
Adapte as suas necessidades. http://delphi.about.com/od/usedbvcl/l/aa082003a.htm Espero ter ajudado. --- Em delphi-br@yahoogrupos.com.br, galvao_em [EMAIL PROTECTED] escreveu Olá, novamente, tenho uma consulta em um DBgrid que está ligado em um DataSet que por sua vez está ligado a um MDOsqlquery. A dúvida é a seguinte: Gostaria de criar um checbox no dbgrid aonde eu pudesse escolher quais dos registros retornados eu nao quero imprimir, ex: a consulta me retorna 100 registros mas 5 deles eu não quero imprimir, como faço para deixá-los de fora? Meu componente de impressao é o Fortes Reporte, uso D7 e FB 2.0 RC4 com MDOLIB. Att. Rodrigo ___ Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador agora! http://br.acesso.yahoo.com -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Excel
Alguém sabe como faço para colocar numa célula '01/2006'. Quando coloco, o excel converte para 'jan/06'. Obrigado. -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Fórmula no excel
Estou fazendo o seguinte: uses excel2000, ComObj; {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); var excel: variant; begin excel:=CreateOleObject('Excel.Application'); excel.Workbooks.add(1); ... excel.cells[20,4].formula := '=SOMA(D6:D14)'; Mas quando abro a planilha no excel, em vez de vir o resultado da fórmula, vem #NOME? . Alguém pode me ajudar? -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Transação IBX x DBX
Usando D7 + FB 1.5.2 . Sei que quando se faz algum acesso ao banco é aberta uma transação. Usando query+datasetprovider+clientdataset. Se uso IBX, faço o seguinte: ClientDataSet2.close; ClientDataSet2.Open; if IBQuery1.Transaction.InTransaction then begin showmessage('aberta'); -- sempre passa aqui IBQuery1.Transaction.Commit; end else showmessage('fechada'); Mas se usar DBX, como saber se a transação está aberta ou fechada? ClientDataSet1.close; ClientDataSet1.Open; if SQLQuery1. ??? E se usar SQLQuery1.ExecSql? Obrigado. -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Re: Transação IBX x DBX
Mas por que o clientdataset controlaria a transação com o DBX e não controlaria com o IBX? Se for isso mesmo que você escreveu, então tem a com o componente query. --- Em delphi-br@yahoogrupos.com.br, JJW Informática Ltda. - Roberto [EMAIL PROTECTED] escreveu Com DBX vc não controla a transação, quem faz esse controle é o ClientDataSet. No caso de um SQLDataSet.ExecSQL, o mesmo starteia e comita a transação ou da o rollback caso um erro ocorra. Para utilizar master-detail com DBX, é necessário utilizar ninhagem de datasets, procure no Borland Developer Network sobre NestedDatasets Att. - Original Message - From: fabio_giro To: delphi-br@yahoogrupos.com.br Sent: Wednesday, August 16, 2006 10:02 AM Subject: [delphi-br] Transação IBX x DBX Usando D7 + FB 1.5.2 . Sei que quando se faz algum acesso ao banco é aberta uma transação. Usando query+datasetprovider+clientdataset. Se uso IBX, faço o seguinte: ClientDataSet2.close; ClientDataSet2.Open; if IBQuery1.Transaction.InTransaction then begin showmessage('aberta'); -- sempre passa aqui IBQuery1.Transaction.Commit; end else showmessage('fechada'); Mas se usar DBX, como saber se a transação está aberta ou fechada? ClientDataSet1.close; ClientDataSet1.Open; if SQLQuery1. ??? E se usar SQLQuery1.ExecSql? Obrigado. [As partes desta mensagem que não continham texto foram removidas] -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Abrindo transação sem abrir query
Fiz o seguinte teste usando D7/IBX/FB 1.52: criei um form e coloquei IBDatabase1, IBTransaction1(Read-commited), IBQuery1(sql=SELECT * FROM POSTO , transaction= ),DataSetProvider1(DataSet=IBQuery1),ClientDataSet1(ProviderName=DataSetProvider1) e 1 button procedure TForm1.Button1Click(Sender: TObject); begin if not IBQuery1.Transaction.InTransaction then showmessage('transacao fechada') else showmessage('transacao aberta'); ClientDataSet1.Close; ClientDataSet1.Open; if not IBQuery1.Transaction.InTransaction then showmessage('transacao fechada') else showmessage('transacao aberta'); end; resultado: transacao fechada transacao aberta Por que abriu a transacao se não abri a query? Observem que a propriedade transaciotn da query está vazia. Vejam o artigo que li na internet: (...)Quando você abre um ClientDataSet que está conectado a um DataSetProvider, o provider é que abre o dataset que está conectado a ele. Quando o dataset é aberto, ele executa sua instrução de SQL SELECT e retorna os registros para o provedor que então os envia para o ClientDataSet fechando o dataset e confirmando (commit) a transação de leitura. (...) Será que esqueci algo? Será que o problema está no IBX? -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Somatorio no Quickreport do Delphi7
É comum nos relatórios ter uma coluna(qrtext) de quant e valor na banda detalhe e um somatório(qrexpress) das colunas na banda sumary. No delphi 3 e 5 funciona normalmente mas no 7 não estou conseguindo. Já procurei nas mensagens da lista, nas dicas dos sites e no google. Alguém tem alguma dica? Obrigado. -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM * Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages * Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html
[delphi-br] Dica sobre Firebird Embarcado
A alguns dias atrás tive um problema na instalação do Firebird Embarcado em que, quando instalava no Windows 98 dava a seguinte mensagem: Exception EIBClientError in module Project2.exe at 000AEFD4. Interbase library gds32.dll not found in the path. Please Install Interbase to use this funcionality. Após muita pesquisa resolvi o problema. A solução é a seguinte: para o windows ME e XP, os arquivos necessários são: meuprograma.exe meubanco.fdb gds32.dll -- fbembbed.dll renomeada para o windows ME e XP, os arquivos necessários são: meuprograma.exe meubanco.fdb gds32.dll -- fbembbed.dll renomeada C:\Firebird 1.5\Bin\Msvcp60.dll Site para baixar o Firebird Embedded sourceforge.net/project/showfiles.php?group_id=9028release_id=163308 Artigo sobre Firebird Embedded www.comunidade-firebird.org, clique em Artigos e selecione o artigo Criando aplicações embarcadas com Firebird 1.5 Espero ter ajudado. -- FAVOR REMOVER ESTA PARTE AO RESPONDER ESTA MENSAGEM Para ver as mensagens antigas, acesse: http://br.groups.yahoo.com/group/delphi-br/messages Para falar com o moderador, envie um e-mail para: [EMAIL PROTECTED] ou [EMAIL PROTECTED] Links do Yahoo! Grupos * Para visitar o site do seu grupo na web, acesse: http://br.groups.yahoo.com/group/delphi-br/ * Para sair deste grupo, envie um e-mail para: [EMAIL PROTECTED] * O uso que você faz do Yahoo! Grupos está sujeito aos: http://br.yahoo.com/info/utos.html