USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Firebird e Interbase X comando SQL
ivanhoe
BARRA BONITA
SP - BRASIL
Postada em 12/01/2006 23:17 hs            
Caros colegas programadores ,
 
Estou tendo problema com instrucao sql para o Firebird e Interbase :
Para carregar um MSHFlexgrid sem percorrer toda a tabela com dados no ACCESS podemos formatar ja na instrucao sql :
sql = "select (produtos.codigo)  as codigo , Format(produtos.preco,'###0.00')   as
preco From Produtos" ... mais ou menos isso ... preenchendo a grade ... Set Grid.Recordset = tblAux 
o problema e que FIREBIRD INTERBASE nao esta aceitando a instrucao dessa forma , alguem sabe uma forma de formatacao que o banco aceite ou terei que percorrer a tabela com um laco mesmo ?
Uso VB6 + SP6  - acesso ADO - simultaneamente o sistema podera  trabalhar com ACCESS OU INTERBASE  entao tera que ser instrucoes que funcione com os dois bancos ... se alguem tiver alguma informacao agradeco ...
 
 
 
     
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 13/01/2006 06:19 hs            
Mas o banco esta retornando algum erro de SQL ou simplesmente nao está preenchendo???


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
ivanhoe
BARRA BONITA
SP - BRASIL
ENUNCIADA !
Postada em 14/01/2006 00:54 hs            
Caro Elieser ,
 
Em primeiro lugar obrigado pela atenção ...
O erro esta acontecendo quando executa a consulta ao banco , Ex:
     SQL = ""
     SQL = "Select CodigoProduto,Descricao,Format (ValorVendaVista,'###0.00') as Vista,Format(ValorVendaPrazo,'###0.00') as Prazo , CodBar From Estoque Order By Descricao"
    '
    tblEstoque.CursorLocation = adUseClient
    If tblEstoque.State = adStateOpen Then tblEstoque.Close
    'NESTA LINHA PARA A EXECUCAO E MOSTRA O ERRO
    tblEstoque.Open SQL, adoBanco, adOpenForwardOnly, adLockReadOnly
   
    MENSAGEM DE  ERRO :
    Dynamic SQL Error
    SQL error code = -804
    Function Unknown
    FORMAT
   
    Inclusive ja li muita coisa do firebird e interbase e por enquanto nao achei nada , estou carregando o grid pelo laco e formatando antes de inserir na grade , mas fica um pouco mais demorado  e muitas linhas de codigo a mais tambem ...
se vc tiver alguma sugestao  ou se tem uma sintaxe diferente para interbase  ou ele nao aceita mesmo esta pre formatacao dos dados ... com ACCESS funciona perfeito ..
 
ate mais  
Ederval              
 
 
 
   
Elieser Topassi
Pontos: 2843 Pontos: 2843
SÃO JOSÉ DO RIO PRETO
SP - BRASIL
Postada em 15/01/2006 10:27 hs            
Amigo
 
Nunca trabalhei com Firebird, mas como é baseado no codigo ffonte do Interbase, vou dar minha opniao sobre isso baseado no q acontece no IB:
NAO EXISTE FUNCAO FORMAT em nenhum SGBD (pelo menos nao existe no Oracle, no SQL Server, no IB e no mySql, q sao os q eu trabalho)
 
Esse select deve ser do Access e vc ta tentando reutilizar... consulte a documentação do seu servidor e verifica qual a funcao ou sintaxe q pode ser usada no lugar do Format...
Sinto, mas eu nao conheço a sintaxe do IB a fundo pra dar uma soluçao de cabeça... eu tenho o habito de consultar sempre a documentaçao, assim nao preciso decorar muitos comandos...
 
Espero ter ajudado...
Flw!


Elieser Carlos Topassi
Analista de Sistemas - Desenvolvedor VB/ASP/.Net

e-mail/msn:
elieser_topassi@yahoo.com.br
São José do Rio Preto,SP - Brasil
_____________________________________________________
Emoções "O caminho do tolo aos seus prórios olhos lhe parece reto, mas o sábio ouve conselhos" (Pv 12:15)

     
ivanhoe
BARRA BONITA
SP - BRASIL
Postada em 15/01/2006 22:35 hs            
Caro Elieser ,
 
Sei que não existe função FORMAT nos SGBDs mais robustos e confiaveis , uso tambem o SQL SERVER com ODBC e ADO , o Firebird e similar ao Interbase mas quando se quer trabalhar com um codigo mais enxuto para produzir sistemas mais rapidos procuramos otimiza-lo ao máximo os comando , com SQL SERVER esta opcao de format na propria instrucao SQL tambem nao e possivel , e necessario percorrer a tabela e formatar o necessario na hora da inserção na grade(flexgrid) ou trabalha-se com controles vinculados e formata-se a coluna no objeto (o que não e desejavel em termos de otimização entre outros fatores ...) ; com o ACCESS funciona , dentre outros recursos bons deste banco ; no ITERBASE ou FIREBIRD  existe uma funcao chamada "CAST" que converte valores para outros tipos , no caso de moeda ou numeros com decimal para nao mostrar "5.2" ou "5"  usamos para mudar para "5.20" ou "5.00" (questao de estetica por causa de mostrar o ponto em vez da virgula)  no SQL SERVER tambem e assim ...
Na verdade este sistema que estou alterando tera a possibilidade de usar ACCESS ou Firebird e estou tentando mudar o mínimo possível as instruções SQL , onde nao há como , faço um desvio ....
If SGBD = "ACCESS" then
    instrucao para access ...
elseif SGDB = "FIREBIRD" then
   instrucao para firebird...
endif
 
Mas enfim agradeço sua atenção e sua opinião ..
Até mais ,
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página