Search the Community

Showing results for tags 'firebird'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • Programação & Desenvolvimento
    • ASP
    • PHP
    • .NET
    • Java
    • C, C++
    • Delphi, Kylix
    • Lógica de Programação
    • Mobile
    • Visual Basic
    • Outras Linguagens de Programação
  • WEB
    • HTML, XHTML, CSS
    • Ajax, JavaScript, XML, DOM
    • Editores
  • Arte & Design
    • Corel Draw
    • Fireworks
    • Flash & ActionScript
    • Photoshop
    • Outros Programas de Arte e Design
  • Sistemas Operacionais
    • Microsoft Windows
    • GNU/Linux
    • Outros Sistemas Operacionais
  • Softwares, Hardwares e Redes
    • Microsoft Office
    • Softwares Livres
    • Outros Softwares
    • Hardware
    • Redes
  • Banco de Dados
    • Access
    • MySQL
    • PostgreSQL
    • SQL Server
    • Demais Bancos
  • Segurança e Malwares
    • Segurança
    • Remoção De Malwares
  • Empregos
    • Vagas Efetivas
    • Vagas para Estágios
    • Oportunidades para Freelances
  • Negócios & Oportunidades
    • Classificados & Serviços
    • Eventos
  • Geral
    • Avaliações de Trabalhos
    • Links
    • Outros Assuntos
    • Entretenimento
  • Script Brasil
    • Novidades e Anúncios Script Brasil
    • Mercado Livre / Mercado Sócios
    • Sugestões e Críticas
    • Apresentações

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


AIM


MSN


Website URL


ICQ


Yahoo


Jabber


Skype


Location


Interests

Found 32 results

  1. Boa tarde... Alguém por acaso já enfrentou problemas com lentidão do update ... usando Firebird no PHP ... Por exemplo se eu for atualizar 2 itens (registros) (vindos de uma consulta) faz rápido ... 0.237 ms Mas se eu pegar por exemplo 50 itens (registros) ... o tempo total vai pra quase 1 minuto .... Obs.: é um update relativamente simples .. ele atualiza apenas 1 (um) campo de cada registro.... Caso alguém tenha passado por algo parecido ou tenha alguma ideia e puder me ajudar agradeço...
  2. Olá pessoal, Estou querendo fazer um instalador para um novo sistema utilizando Python, dentre as configurações irei precisar adicionar uma conexão Firebird no "Fontes de Dados ODBC (32 bits)". Após algumas pesquisas cheguei no seguinte código: import fdb con = fdb.connect( host='BASEBD', database='192.000.0.000:f:\Dados central\DADOS.FDB', user='sysdba', password='pass' ) Porém o mesmo apresenta erro e além disso acredito não ser a maneira correta visto que o código acima não engloba itens como: client, charset e a opção "read(defaut write)". De forma resumida o que preciso fazer é uma conexão conforme imagem abaixo, porém via Python (aceito outras sugestões CMD/powershell, outras linguagens): Ficarei muito agradecido se alguém puder me ajudar.
  3. Boa tarde! Tenho um banco de dados Firebird e um banco de dados Progress 11.7 que precisam ser acessados por um mesmo programa. Consegui fazer as conexões corretamente e ambos os bancos são acessados. Porém, preciso criar um campo Lookup no meu ClientDataSet buscando dados do meu ADODataSet e isto está me causando problemas. Por exemplo: Tenho a tabela COMPUTADOR no meu banco Firebird que contém a chave estrangeira COD_FUNCIONARIO e tenho a tabela FUNCIONARIO no meu banco Progress 11.7 que contém a chave primária COD_FUNCIONARIO e o campo NOME. Preciso criar um campo Lookup com o NOME do funcionário no ClientDataSet da tabela COMPUTADOR. Porém, o que acontece é que em alguns registros o nome é mostrado corretamente no campo Lookup, mas em outros registros não mostra. Acredito que seja algum tipo de incompatibilidade entre os componentes ADO e CDS. Alguém já viu isso acontecer? Pode me ajudar, por favor? Obrigado.
  4. Boa noite, Estou convertendo um banco firebird para postgresql, mas agora estou sentindo dificuldades nas triggers, alguém pode me ajudar ? umas das triggers é essa: CREATE OR ALTER TRIGGER TRG_CAD_PRODQUALIDADE FOR CAD_PRODQUALIDADE ACTIVE BEFORE INSERT OR UPDATE POSITION 0 AS declare variable FIDENTIFICADOR varchar(200) = null; declare variable INIDEMPRESA integer = null; begin /* O IDENTIFICADOR ? uma forma??o de codigo que por si s? identifica 4 elementos: "ID Empresa", "ID Produto", "ID da Cor" e "ID do Tamanho" o IDENTIFICADOR ? formado com os seguintes codigos: - ID DA EMPRESA - CODIGO DO PRODUTO (TABELA CAD_PRODUTOS) - ID DA COR - ID TO TAMANHO */ if (inserting or updating) then begin INIDEMPRESA = (SELECT CAD_PRODUTOS.empresa FROM CAD_PRODUTOS WHERE CAD_PRODUTOS.REFERENCIA=new.referencia ); FIDENTIFICADOR = ''; new.identificador = trim(cast(INIDEMPRESA as fcodigo))||''||trim(cast(new.codigo as fcodigo))||''||trim(cast(new.cor_id as fcodigo))||''||trim(cast(new.tamanho_id as finteiro)); end end Grato: Paulo Roberto
  5. Bom dia, Alguém conhece alguma ferramenta para migrar banco de dados firebird para postrgresql ? com procedures, functions, triggers, etc. Grato: Paulo
  6. Olá :) Bem, antes de tudo, sou uma novata. Estou na faculdade e tenho um projeto de estágio cujo propósito é migrar a estrutura e os dados de um banco de dados Firebird para um PostgreSQL. Já consegui construir as tabelas, chaves, índices, views no novo banco PostgreSQL. Agora me deparo com os stored procedures do Firebird, eles são 140. Preciso convertê-los em functions no PostgreSQL. Minha dúvida é: existe alguma ferramenta que faça essa conversão? Já testei algumas ferramentas de migração, como DBTools Manager Professional, Full Convert e PostgreSQL Database Converter, mas nenhum deles converte procedures. Gostaria de encontrar uma ferramenta porque tenho pouco tempo para fazer essa conversão toda à mão, e ainda nem cheguei nos triggers... Desde já agradeço.
  7. Olá! Minha dúvida é a seguinte, tenho um cliente para o qual fiz um site com um sistema para o próprio cliente administrar o conteúdo de produtos. Este site está em PHP, com banco MySql. Agora o cliente adquiriu um programa para gestão geral, o que inclui cadastro de produtos. Este programa tem base de dados local em FireBird. O que meu cliente quer agora é utilizar os cadastros de produtos alimentados neste programa no site, para não ter retrabalho de cadastrar tudo de novo. O que eu pensei em fazer seria um aplicativo desktop que acesse este banco local, faça a consulta dos dados para enviar para o banco MySql online. O que vi foi a possibilidades de usar um WebService, mas não entendi bem. Gostaria de uma explicação de como integrar os três Aplicação Desktop(C#) + WebService + Site(PHP+MySql). Teria como?
  8. Boa Tarde pessoal fiquei a semana inteira quebrando cabeça com uma aplicação e não consegui resolver, eu pago quem me ajudar sem problema... Pra explicar melhor fiz um video e postei no youtube... Realmente estou disposto a pagar por uma consultoria, pois isso é muito importante pra mim, meu whatssap é ( 034 88080777 ) ddd trinta e quatro, fone oito oito zero oito zero sete sete sete. OBs: em algumas maquinas funciona normal e em outras não, já formatei, já fiz de tudo...já testei em umas 10 maquinas, algumas funcionam e outras não, não descobrir o porque, todas que testei foi com windows 7 32 e 64 aleatoriamente, já testei a aplicação local também e acontece o mesmo. Fiz um video e coloquei no youtube pra explicar melhor a situação, segue o link abaixo. Desde já agradeço;linnk https://youtu.be/2lvW1g5-sOE
  9. Olá senhores,Estou desenvolvendo um sistema para um cliente onde, no ato do cadastro do cliente, ele preenche um radio button que possui 3 valores relacionados a data de vencimento(por exemplo, todo dia 5). Ele quer que implemente algo que quando passasse desse dia de vencimento o status mudasse, informando que o cliente está em débito. Não tenho a mínima ideia de como fazer isso pois só tenho o dia, não uma data completa. Poderiam me ajudar? Desde já obrigado. Segue o código: if DayOf(date) > FDCadPadraoCL_DIA_VENCIMENTO.Value then begin lblStatus.Caption := 'Atrasado'; lblStatus.Color := clRed; end else begin lblStatus.Caption := 'Em dia'; lblStatus.Color := clGreen; end;
  10. Pessoal, boa tarde!! É meu primeiro tópico aqui e estou iniciando com o Crystal agora. Trabalho com uma ferramenta chamada Scriptcase (linguagem PHP) e ela chama um relatório feito em Crystal. Esse relatório, pode ser em banco de dados Oracle ou Firebird. O meu problema está no seguinte. Meu relatório eu criei em cima de uma base Oracle. Porém ao publicar e tentar acessar de uma base Firebird, o meu sistema não abre o relatório. Porém, se eu mudar a conexão para Firebird, ele abre o relatório. Alguma sugestão do que eu possa fazer? Att. Thyago Brasil Desenvolvedor Web
  11. Bom dia. Preciso conectar meu código PHP a um banco de dados Firebird (tenho a versão 1.5) utilizando o serviço Apache do Xampp. Já "descomentei" a linha extension=php_interbase.dll do arquivo php.ini e adicionei a DLL fbclient.dll no C:\Windows\System32 e C:\Windows\SysWow64. O serviço inicia corretamente no Xampp e meu código PHP está assim: <?php $hostname = "127.0.0.1:C:\\xampp\\htdocs\\Teste1\\Banco\\BDaaa.fdb"; $usuario = "SYSDBA"; // Usuário padrão do Firebird $senha = "masterkey"; // Senha padrão do Firebird $conexao = ibase_connect($hostname, $usuario, $senha) or die('<p>Código do erro: ' . ibase_errcode() . '</p><p>Mensagem de erro: <br>' . ibase_errmsg() . "</p>"); ?> Mas aparece o erro "Fatal error: Uncaught Error: Call to undefined function ibase_connect() in C:\xampp\htdocs\Teste1\banco.php:8 Stack trace: #0 {main} thrown in C:\xampp\htdocs\Teste1\banco.php on line 8". Já troquei o IP 127.0.0.1 por localhost e também já tentei sem as barras duplas, porém sem sucesso. Alguém pode me ajudar? Obrigado.
  12. Boa tarde! Alguma coisa tem de errado neste código eu suspeito que seja esta trigger no bloco For Select ... Into Do, se eu retirar este bloco funciona mas logicamente somente se houver um item por pedido, quando eu adiciono este bloco For Select ... Into Do o erro acontece... Invalid insert or update value(s): object columns are constrained - no 2 table rows can have duplicate column values. violation of PRIMARY or UNIQUE KEY constraint "PK_SALDOESTOQUE" on table "SALDO_ESTOQUE". Problematic key value is ("ID_MOVIMENTO" = 62, "ID_PRODUTO" = 1, "ID_EMBALAGEM" = 1). At procedure 'ADD_SALDO_ESTOQUE' line: 15, col: 4 At procedure 'REAJUSTAR_SALDOESTQ' line: 41, col: 8 At trigger 'ADICIONAR_ESTOQUE' line: 34, col: 11. alguém poderia me dar um Help? Explicação do código: Existe as tabelas de pedido_entrada, item_entrada, movimento_estoque e saldo_estoque. pedido_entrada e item_entrada: armazena os pedidos de compra. movimento_estoque e saldo_estoque: armazena as movimentações e seu saldo de estoque, respectivamente. Esta Trigger é disparado depois de atualizar a tabela pedido_entrada (pedido de compra) aonde o campo status for alterado de (P)endente para (F)inalizado. A inteção é adicionar todos os itens do pedido de compra na tabela saldo de estoque (não esquecendo que a estrutura é um mestre-detalhe movimento_estoque 1-N saldo_estoque). set term ^ ; create trigger adicionar_estoque for pedido_entrada active after update position 0 as declare variable idMovimento integer; declare variable idProduto integer; declare variable idEmbalagem integer; declare variable valorCusto numeric(13,2); declare variable margem numeric(7,2); declare variable valorVenda numeric(13,2); declare variable percDesc numeric(5,2); declare variable qtdeItem numeric(10,3); declare variable qtdeEstq numeric(13,3); declare variable valorTotal numeric(18,2); begin /* se o status do pedido estiver como finalizado */ if ((old.status = 'P') and (new.status = 'F')) then begin /* inclui registro na tabela movimento_estoque */ execute procedure add_movimento_estoque(old.id_pedido,NULL,2,NULL,'N') returning_values :idMovimento; /* retorna o último saldo de estoque em que o código do produro e embalagem seja igual ao do item do pedido */ for select s.id_produto, s.id_embalagem, i.valorUnitario, s.percentual, s.valorVenda, s.percentDesc, s.qtdeAtual, i.quantidade, s.valorTotal from item_entrada i inner join saldo_estoque s on(i.id_produto = s.id_produto and i.id_embalagem = s.id_embalagem) where (i.id_pedido = old.id_pedido) and (s.id_movimento = (select max(id_movimento) from saldo_estoque where (id_produto = s.id_produto) and (id_embalagem = s.id_embalagem))) into :idProduto, :idEmbalagem, :valorCusto, :margem, :valorVenda, :percDesc, :qtdeEstq, :qtdeItem, :valorTotal do begin execute procedure reajustar_saldoEstq('E',2,:idMovimento,:idProduto,:idEmbalagem, :qtdeItem,:qtdeEstq,:valorCusto,:margem, :valorVenda,:percDesc,:valorTotal); end end end ^ set term ; ^ set term ^ ; create procedure reajustar_saldoEstq( operacao char(1) character set win1252, idTipo integer, idMovimento integer, idProduto integer, idEmbalagem integer, qtde numeric(10,3), qtdeEstq numeric(13,3), valorCusto numeric(13,2), margem numeric(7,2), valorVenda numeric(13,2), percDesc numeric(5,2), valorTotal numeric(18,2)) as declare variable custoMedio numeric(13,2); declare variable valorMov numeric(15,2); begin /* reajusta a quantidade em estoque e o valor total de custo. */ if (operacao in ('E','S','I')) then begin if (operacao = 'E') then /* entrada. */ begin qtdeEstq = (:qtdeEstq + :qtde); valorMov = (:valorCusto * :qtde); valorTotal = (:valorTotal + :valorMov); end else if (operacao = 'S') then /* saída. */ begin qtdeEstq = (:qtdeEstq - :qtde); valorMov = (:valorCusto * :qtde); valorTotal = (:valorTotal - :valorMov); end else if (operacao = 'I') then /* inicializa. */ begin qtdeEstq = :qtde; valorMov = (:valorCusto * :qtde); valorTotal = :valorMov; end /* inclui registro na tabela saldo_estoque. */ execute procedure add_saldo_estoque (:idMovimento,:idProduto,:idEmbalagem, :valorCusto,:margem,:valorVenda,:percDesc, :qtde,:valorMov,:qtdeEstq,:valorTotal); /* idTipo 2: entrada por compra, 4: devolução de venda, 5: devolução de compra */ /* devolução de ... para casos em que o valor de custo da "devolução" seja diferente do valor de custo atual. */ if ((operacao in ('E','S')) and (idTipo in (2,4,5))) then begin /* se o custo médio for alterado, recalcula o custo e inclui um novo movimento. */ custoMedio = (:valorTotal / :qtdeEstq); if (:valorCusto <> :custoMedio) then begin execute procedure add_movimento_estoque (NULL,NULL,1,NULL,'N') returning_values :idMovimento; execute procedure add_saldo_estoque (:idMovimento,:idProduto,:idEmbalagem, :custoMedio,:margem,:valorVenda,:percDesc, 0,0,:qtdeEstq,:valorTotal); end end end end ^ set term ; ^ Obrigado!
  13. Olá pessoal. Preciso de ajuda com a seguinte questão. Consulto banco de dados Firebird e estou tendo problemas ao trazer algumas informações com o PHP. Tenho uma tabela OS com várias colunas como EMAIL, TEL, OBS, OBS2, etc. Ao trazer as informações, os campos OBS e OBS2 exibem a informação 0x00266b6e0000018f e 0x0027dd2c0000018f. Na base, esses campos estão como TEXTO LONGO e possuem conteúdo como "DEFEITO NO EQUIPAMENTO TAL TAL TAL". Os demais campos EMAIL, TEL, exibem a informação normal. Alguém saberia me ajudar? Desde já agradeço. index.php <?php if (!($dbh=ibase_connect('XX', 'XX', 'XX'))) die(ibase_errmsg()); $SEQOS = 999; $a = "SELECT EMAIL, TEL, OBS, OBS2 FROM OS WHERE SEQOS = '$SEQOS'"; $query = ibase_query($dbh, $a); $row = ibase_fetch_object($query); if ($row != 0) { echo "EMAIL: " . $row->EMAIL; echo "TEL: " . $row->TEL; echo "OBS: " . $row->OBS; echo "OBS2: " . $row->OBS2; } ibase_free_result($query); ibase_close($dbh); ?>
  14. Olá, preciso criar um instalador para meu sistema. Estou com dificuldade em relação a instalação do firebird 2.5 que é necessario para funcionar a aplicação. Tentei utilizar o installshield e smart install maker, mas não consegui localizar uma opção para rodar a instalação do firebird de forma 'silenciosa', sem que o usuario perceba que o firebird esta sendo iunstalado. Aguem poderia me dar alguma dica de qual programa usar para criar esse instalador ou como usar o installshield por exemplo para instalar o Firebird ?
  15. Bom dia a todos, galera to enroscado numa query aqui, preciso efetuar uma agregação na consulta externa e não estou conseguindo select t1.*, t2.* , from (select case when pedcab.estab=101 then 'Matriz' when pedcab.estab=102 then 'Filial' end as Unidade, PEDCFG.pedidoconf as pedidoconf, pedcfg.descricao as descricao_pedido, cidade.uf as UF, cidade.nome as CIDADE, case when (extract(month from dtprazopagto)=1) then 'Janeiro' when (extract(month from pedcab.dtemissao)=2)then 'Fevereiro' when (extract(month from pedcab.dtemissao)=3)then 'Março' when (extract(month from pedcab.dtemissao)=4) then 'Abril' when (extract(month from pedcab.dtemissao)=5) then 'Maio' when (extract(month from pedcab.dtemissao)=6) then 'Junho' when (extract(month from pedcab.dtemissao)=7) then 'Julho' when (extract(month from pedcab.dtemissao)=8) then 'Agosto' when (extract(month from pedcab.dtemissao)=9) then 'Setembro' when (extract(month from pedcab.dtemissao)=10) then 'Outubro' when (extract(month from pedcab.dtemissao)=11) then 'Novembro' when (extract(month from pedcab.dtemissao)=12) then 'Dezembro' end as Mes_Emissao, extract(year from pedcab.dtemissao) as Ano_Emissao, pedcab.dtemissao as Emissao, extract(year from pedcab.dtprazopagto) as Prazo_Pagto_Ano, peditem.seqpedite as SeqpedIte, pedcab.serie as Serie, pedcab.numero as Numero, pedcab.numpedterc N_represent, preprese.descricao as Representante, contamov.nome as cliente, pedcab.numero as Pedido, peditem.item as Item, itemagro.descricao as Item_Desc, pedcab.valormercadoria as Valor_Mercadoria, peditem.quantidade as quantidade, peditem.valorunitario as Valor_Unitario from pedcab left join peditem on pedcab.estab=peditem.estab and pedcab.serie=peditem.serie and pedcab.numero=peditem.numero left join itemagro on peditem.item=itemagro.item left join contamov on pedcab.pessoa=contamov.numerocm inner join pedcfg on pedcab.pedidoconf=pedcfg.pedidoconf left join preprese on pedcab.represent=preprese.represent and pedcab.representestab=preprese.empresa left join cidade on preprese.cidade=cidade.cidade where pedcab.pedidoconf=1 or (pedcab.pedidoconf=7 or (pedcab.pedidoconf=8))) as t1 left join ( select case when peditemnfitem.estab=101 then 'Matriz' when peditemnfitem.estab=102 then 'Filial' end as Unidade, peditemnfitem.serie as Serie, peditemnfitem.numero as Pedido, peditemnfitem.seqpedite as Seqpedite, sum(peditemnfitem.quantidade) as qtdbaixada from peditemnfitem group by peditemnfitem.estab, peditemnfitem.serie, peditemnfitem.numero, peditemnfitem.seqpedite )as t2 on t1.unidade=t2.unidade and t1.Serie=t2.Serie and t1.Pedido=t2.Pedido and t1.Seqpedite=t2.Seqpedite
  16. Olá bom dia pessoal, tenho uma tabela de clientes com os campos de Data de Cadastro do Registro e Data de Modificação do Registro alguém saberia como fazer para criar uma trigger que atualiza a coluna de Data de Modificação dessa tabela de clientes toda vez que uma linha for alterada, até agora pensei em algo parecido com isso aqui ------------------------ CREATE trigger ATUALIZA_DATA_MODIFICACAO for TB_CLIENTE active before update position 0 AS begin update TB_CLIENTE set TB_CLIENTE.DATA_MODIFICACAO = current_date where TB_CLIENTE.CODIGO = ????; end --------------------------
  17. Bom dia pessoal, Andei dando uma pesquisada e não encontrei um exemplo como queria. Hoje tenho um banco de dados Firebird, e estou trocando para MySQL. Estou programando em delphi e uso componentes da paleta DBX, Gostaria de entender as diferenças entre a sintaxe de a procedure MySQL e a Firebird. Como exemplo trouxe uma Store Proedure da minha base firebird e gostaria de saber como ficaria a mesma procedure em Mysql. Dessa forma vou consegui entender melhor as diferenças. Essa procedure seleciona os items da tabela Itensentrada, onde o Numero da entrada é a que eu passo pelo parametro RCODENTRADa, e atualiza o estoque alimentando também uma outra tabela de histórico de produtos e clientes. Não sei exatamente se no MySQL consigo fazer isso. Imagino que sim pois as linguagens são bem semelhantes...mas não acho a sintaxe correta para montar a Store Procedure. CREATE PROCEDURE ATUALIZA_ESTOQUE_ENTRADA ( RCODENTRADA INTEGER) AS declare variable VCODENTRADA integer; declare variable VCODCLIENTE integer; declare variable VCODOBRA integer; declare variable VCODPROD integer; declare variable VQTDE float; declare variable VVRUNITARIO numeric(15,2); declare variable VTIPO char(1); declare variable VSTATUS varchar(20); begin FOR SELECT I.codentrada, I.codobra, I.codproduto, I.quantidade, I.vrunitario FROM ITENSENTRADA I WHERE I.codentrada = :rcodentrada INTO :vcodentrada, :vcodobra, :vcodprod, :vqtde, :vvrunitario do BEGIN vtipo = 'E'; SELECT E.codcliente, e.status FROM ENTRADA e WHERE E.codentrada = :rcodentrada INTO :vcodcliente, :vstatus; if (:vstatus = 'ABERTA' or :vstatus = 'FINALIZADA') then exit; else begin UPDATE entrada e SET e.status = 'FINALIZADA' WHERE E.codentrada = :rcodentrada; UPDATE PRODUTO P SET P.estoque = P.estoque + :vqtde, P.vrunitario = :vvrunitario WHERE P.codproduto = :vcodprod; INSERT INTO HISTORICOCLIENTES(CODMOV, CODCLIENTE, CODPRODUTO, QTDE, CODOBRA, TIPO) VALUES (:vcodentrada, :vcodcliente, :vcodprod, :vqtde, :vcodobra, :vtipo); INSERT INTO HISTORICOPRODUTO (CODMOV, CODOBRA, CODCLIENTE, CODPROD, QTDE, VALOR, TIPO) VALUES (:vcodentrada, :vcodobra, :vcodcliente, :vcodprod, :vqtde, :vvrunitario, :vtipo); end END END
  18. Boa tarde! Eu possuo um sistema feito em Delphi 7 + Firebird 2.5 com componentes de conexão da paleta InterBase. Em uma das minhas rotinas, é realizada a baixa de estoque do produto através de Expedição de pedido de venda. Estou com o seguinte problema: Ao fazer a expedição de um mesmo produto, simultaneamente, em terminais diferentes (e pedidos de venda diferentes), o sistema trava e logo após destravar exibe a seguinte mensagem de erro: "deadlock / concurrent transaction number is 14297". Segue o código: IBTransAtualizacao.StartTransaction; try ExpedirItem(StrToInt(edtCodigo.Text) ,poItemExpedido.nQuantidade ,poItemExpedido.nQuantidadeUP ,cdsItensVendaITE_QTD_EXPEDIDO.AsFloat ,cdsItensVendaITE_QTD_UP_EXPEDIDO.AsFloat ); IBTransAtualizacao.Commit; except on E: Exception do begin IBTransAtualizacao.Rollback; MensagemFalha('Expedição não executada!'); end; end; Toda operação está ligada no mesmo Transaction (IBTransAtualizacao). Dentro do método ExpedirItem, faço algumas consultas na tabela ANDAMENTO_ESTOQUE (Esta por sua vez armazena toda movimentação de estoque do sistema por produto) para poder recalcular o saldo do produto que está sendo expedido e assim poder dar baixa do mesmo no estoque (Atualizar o campo PRO_ESTOQUE da tabela PRODUTO). O deadlock provavelmente ocorre porque ao consultar simultaneamente a tabela ANDAMENTO_ESTOQUE cruzando (JOIN) com a tabela PRODUTO, o firebird bloqueia o registro referente ao produto que está sendo expedido. Mas está tudo ligado na mesma transação. Alguém sabe como resolver o problema do deadlock? Como faço para trabalhar com "fila"? Ex: Caso a transação em um terminal tente acessar um registro que já está sendo utilizado por outro, o sistema aguarde até o registro ser "liberado"? A propriedade Params do IBTransAtualizacao está como: read_committed no_rec_version wait Obrigado desde já!
  19. Olá, preciso criar uma procedure "simples", para mostrar todas as informações de uma tabela, porém retorna erro ao executar. O comando que estou usando é:create or alter procedure lista_estoquebeginselect * from estoquesuspend;end;O que pode estar errado ?
  20. Bom dia, amigos. Estou tentando criar o seguinte campo calculado no Firebird (Computed Source): ALTER TABLE CONTAS_RECEBER ADD CR_OPERACAO COMPUTED BY (CASE WHEN (AR_CODIGO > 0) THEN 'Armazenagem' WHEN (AFE_CODIGO > 0) THEN 'Aluguel/Expurgo da Armazenagem' WHEN (BA_CODIGO > 0) THEN 'Pesagem' WHEN (CF_NUM_CONHECIMENTO > 0) THEN 'CTe' WHEN (RECP_CODIGO > 0) THEN 'Recálculo de Parcelas' WHEN (LOC_CODIGO > 0) THEN 'Locação Gerador' WHEN (ADT_CODIGO > 0) THEN 'Aditamento Gerador' WHEN (MAN_CODIGO > 0) THEN 'Manutenção Gerador' WHEN (ENG_CODIGO_ANDAMENTO > 0) THEN 'Andamento Engenharia' WHEN (ENG_CODIGO_ETAPA > 0) THEN 'Etapa Engenharia' WHEN (ENG_CODIGO > 0) THEN 'Contrato Engenharia' WHEN (NFS_CODIGO > 0) THEN 'Nota Fiscal de Serviço' WHEN (VEN_COD_PEDIDO > 0) THEN 'Venda' ELSE 'Lançamento Manual' END)O problema é que se eu deixar os acentos nas strings, dá erro na hora de executar o script. Se eu tirar todos os acentos, funciona normalmente e consigo criar o campo. Alguém saberia me dizer por que o erro ocorre e se existe uma forma de criar esse tipo de campo com os acentos? Obs: no meu banco, existem vários registros em várias tabelas que têm acento nos campos varchar e tudo funciona normalmente, só na criação desse campo calculado estou tendo esse tipo de problema.
  21. Boa tarde Prezado(s), Sou iniciante nos estudos em SQL e estou acessando um software de banco de dados Firebird que me permite realizar consultas sql, onde estou tentando retornar a seguinte situação. Tabela ORDSERV e Tabela ORDXFUN, campos DATPRO (ORDSERV) e DATHORINI (ORDXFUN).Ambos campos são do tipo TIMESTAMP e ambos armazenam datas e horas, onde a coluna DATHORINI possui vários registro de datas.Preciso retornar a diferença entre datas da DATPRO e do primeiro registro da DATHORINI, onde o resultado me apresente o valor em HH:MMCom a consulta abaixo consegui retornar a diferença como no exemplo, 26:32.00000000000000, porém, a quantidade de casas decimais está muito grande e não sei como arredondar o tipo de campo TIMESTAMP. select datediff (hour, ORDSERV.DATPRO, ORDXFUN.DATHORINI) || '-' ||mod(datediff (minute, ORDSERV.DATPRO, ORDXFUN.DATHORINI), 60) as tempototal,
  22. Tenho uma tabela cliente, e uma tabela endereço na minha tabela cliente tem as seguintes colunas Id, Nome, Ativo, Endereco_Id a coluna endereco_id é a chave de relacionameto com a tabela Endereço->id No meu Formulario tem os campos da tabela endereço e os campos da tabela cliente como eu faço para inserir os dois ao mesmo tempo, inserir o endereço digitado na tabela endereço e inserir o os dados do cliente na tabela cliente colocando já o id que foi gerado para o endereço na coluna Endereço id do cliente
  23. Bom Dia! Primeiramente venho aqui agradecer à todos do Fórum ScriptBrasil que mesmo que involuntariamente, muito me ajudam. Obrigado!!! Gostaria também de antecipar minhas desculpas caso o Tópico não esteja de acordo com as regras do fórum. Deixo também algumas observações, tais como: Obs.: Estou criando este tópico em meu trabalho, pois estou sem internet em casa ( mudei a pouco tempo e não consegui ainda transferir a instalação). Assim sendo, fica difícil postar erros etc... de maneira 100% clara e, por isso, tentarei ser claro em minhas perguntas e não me ater muito aos códigos. OBS.: Configurações de PC: I5 -2° geração, 8 GB de memória, SO - Win 7 - 64; Bem, vamos aos fatos! Sou iniciante em Visual Basic 6.0, ingressei no mesmo trabalhando com Banco de Dados Access, onde não obtive quaisquer problemas, claro, com um BD muito pequeno, algo entorno de 2000 registros. No Access sempre utilizei conexões comuns ( pelo menos para mim ) tipo." Public BD as Database "; " Public TB as Recordset "; sempre atendeu muito bem ao que eu pretendia, retornando dados de pesquisa mais rápido que um 'piscar de olhos'. Com o passar do tempo, fui lendo, lendo e relendo, assim me deparei com o Firebird, que apesar das muitas reclamações que vi sobre dados corrompidos, me despertou curiosidade, dessa maneira baixei e instalei sua versão 2.0.4, juntamente do IBExpert Personal Edition e instalei também o Firebrid ODBC Drive para win 7 64 bits. Iniciei meus testes e estudos. Achei o IBExpert muito agradável, o ISQL do Firebird de fácil manipulação etc... tudo muito lindo, Fiz a transferência dos mesmos dados Acess para o Banco do Firebird, foi ai que começou aparecer alguns problemas. 1° O Banco de dados é muito pequeno ( pouco menos de 2000 registros ), no Access as consultas retornavam resultados em "menos de um piscar de olhos" ( como já disse acima ), nem dava para perceber a "olho nu" , tal sua velocidade. Com o Firebird, eu pensei que seria os mesmos resultados ( em velocidade ) ou até melhores, no entanto ele demora entre 3 e 4 segundos para me retornar a pesquisa, isto com o Banco já aberto. Ao meu ver, muito lento. Não sei se tem muito haver com a velocidade o fato de eu ter colocado o Page_Size em torno de 8000 ( não lembro o valor exato.) 2° Quando abria o BD com o Access era só eu indicar onde estava o BD, tipo: "C;\Banco\MeuBanco.MDB", ou usando o AppPath, de toda forma, não importando o local, sempre conseguia fazer abertura e conexão com o mesmo. Já com o Firebird, utilizando Drive ODBC e conexão ADODB, me retornou um problema. veja: Se o BD estiver na seguinte pasta "C:\Program Files\Firebird\Firebird_ODBC" consigo a conexão sem problemas. No entanto, se eu mudar o local do BD, mesmo que lá no VB6 eu altere a pasta como por exemplo "C:\SomenteUmTeste\BancoTeste\MEUBANCO.FDB", ainda assim ele me retorna o erro abaixo: Run-time error '-2147217843 (80040e4d)': [ODBC Firebird Drive]File Database is not found 3° Quando eu abria o BD com o Access, se não estiver enganado, eu fazia como descrito abaixo: Private sub Form_load() Dim Banco as Database Dim TB as Recordset Set Banco = OpenDatabase("caminhadoBancodeDados", false, false) ' se não estiver enganado novamente, essa é uma conexão DAO Set TB = Banco.OpenRecordset("NomedaTabela") End Sub 4° Já utilizando ADODB eu tentei o seguinte ( dá certo na pasta que já expliquei anteriormente ): Private Sub Form_Load() Dim Banco as New ADODB.Connection Dim TB as New ADODB.Recordset Banco.ConnectionString "DRIVER = Firebrid\InterBase® Driver; UID=SYSDBA; PWD=masterkey; DBNAME=MeuBanco.FDB" Banco.Open etc.. etc... Se não estiver novamente enganado é esse código ai que eu escrevi lá em casa e com o BD lá na pasta do Firebird_ODBC funciona, mais se eu retiro de lá e especifico o local tipo: " ...... DBNAME=C:\Teste_BD\Banco\MeuBanco.FDB", ai já não funciona. Agora vem as perguntas: 1° É normal essa demora em me retornar os resultados buscados no Banco de dados? Sei que meu PC não é apropriado para servir de Servidor, mas a aplicação é pequena, e o BD é minúsculo. Contudo, ainda utilizo instruções SQL para a busca ( eu li que é um tipo de instrução bastante rápida ). 2° Caso a resposta da primeira pergunta seja: "Não, não é normal!", como posso melhorar? a Page_Size está muito alta? Baixa? Qual seria o recomendado para a minha maquina e meu BD? 3° O Drive ODBC é bom para conexões com o Firebird através do VB6?? 4° Tem algum drive melhor ( preferência grátis, afinal, estou em fase de estudo e aprendizagem ) ? Algum que vocês recomendam? 5° Esse negocio dele não reconhecer o BD quando eu o retiro do caminho " C:\Program Files\Firebird\Firebird_ODBC " tem solução? será que eu estou errando no código? 6° O que é melhor e porque.? Declarar a variável já com o New ADODB.Connection ou criar o ADODB.Connection e posteriormente mandar um New? Existe diferença? 7º Vocês tem algum Curso online ( preferência com vídeo-aulas ), pode ser PAGO que me recomendam? Não algo do tipo " ouvi dizer que esse curso é bom " e sim algo que vocês fizeram e acharam realmente bom, bem explicativo etc...? Bom gente, é isso ai, peço desculpas novamente caso o texto tenha ficado demasiadamente grande e aproveito para agradecer mais uma vez. Vocês me ajudam muito. Muito Obrigado!!! Ninguém??? :-(
  24. Bom dia pessoal, Estou fazendo uma consulta em uma tabela IBGE e preciso desprezar os acento que retornam na coluna município (XMUNICIPIO). Pra isso já tentei fazer um cast trocando o charset (ISO8859_1/DE_DE) mas continua saindo com acento, troquei para (UNICODE_CI_AI) mais da erro na consulta retornando "CHARACTER SET UTF8 não esta definido". Versão do firebird 2.5. Segue sql para critica... SELECT A.XUF, A.CUF, CAST(A.XMUNICIPIO AS VARCHAR(256) CHARACTER SET UTF8) COLLATE UNICODE_CI_AI, A.CMUNICIPIO FROM IBGE A SELECT UPPER (CAST(A.XMUNICIPIO AS VARCHAR(256) CHARACTER SET ISO8859_1) COLLATE DE_DE), CAST(A.XMUNICIPIO AS VARCHAR(256) CHARACTER SET ISO8859_1), A.XUF, A.CMUNICIPIO, A.XMUNICIPIO FROM IBGE A --WHERE UPPER (CAST(A.XMUNICIPIO AS VARCHAR(256) CHARACTER SET ISO8859_1) COLLATE DE_DE) LIKE '%são%' ORDER BY 1 DESC
  25. Solução em biometria facial para desenvolvedor delphi7 ,Vb.Net e Access VBA Khronos Tecnologia - Software/Aplicativo e consultoria em desenvolvimento biométrico Saiba mais em http://geovanny-oliveira16.wix.com/khronostecnologia Skype:Giovanny0113