Jump to content
Fivewin Brasil

Pablo.Softgraf

Membros
  • Posts

    584
  • Joined

  • Last visited

  • Days Won

    4

Posts posted by Pablo.Softgraf

  1. ORibeiro , boa noite !

    Discordo totalmente do nosso amigo MKYX,  ao contrário , não perdemos clientes , ganhamos , a nossa maior solução para entrar no gerenciador de banco de dados foi o SQLRDD. acho ele fantastico, performance 100% , conjugo ele com uma página web escrita em C# e DEVEXPRESS.

    Esse seu problema, está na criação do indice no gerenciador que está usando . tambem passamos por estes problemas, você deve tomar cuidado em usar variaveis para cria certos indices , realmente nem dbcommit e muito menos dbunlock funcionarão. o único que concordo é quem em certas situações deve usar comandos DML, ou seja, 

    SELECT , UPDATE , DELETE... agora se fizemos uma compra de uma ferramenta que não funciona , e na época não pagamos pouco, pra que tê-la. 

    Imagina se fosse ter que mudar todas as rotinas que tivemos anos de desenvolvimento em xBase, a ferramenta não se faria necessária.

    Comigo funciona maravilhosamente bem. sem mais.

    DBF morreu...

    O meu é walking dead então.   tenho DBF´s com mais de 1milhão de registros, detalhe com .NTX, e funciona lindoooo... kkkkkk

     

     

  2. João , problema resolvido 

    ME recordo que tinha usado este cara anteriormente , mas não me recordava o comando, como uso o SQL SERVER 2008 ainda, voce resolve colocando esta propriedade.

    SR_Setsql2008newTypes(.t.)

    Não poderia ser que teria que mudar e converter todos os campos date , deveria funcionar corretamente, apenas com os recursos do SQLRDD..

     

    Abraços meu irmão.. e obrigado pela força.

  3. João , bom dia, primeiramente, muito obrigado pela sua ajuda !

    Sabe uma coisa que acho muito estranho, na rotina do Kleyber ele copia a estrutura de outras tabelas, e cria com perfeição o Date , se voce mostra com o SR_ShowVector, é exatamente como estou criando, mas alguma coisa internamente ele deve passar na criação da tabela, senão me engano na rotina DBF2SQL 

    ele usa o DBCreate ... posso criar com o create table, é uma tabela temporaria mesmo , mas estava copiando a estrutura de outras tabelas e adicionando campos.

     

     

  4. Senhores, boa noite !

    Estou tentando criar um campo do tipo DATE através do DbCreate, conforme abaixo : 

      aStruct := {}
      aStruct := temp->(dbStruct())
      aadd( aStruct , {'DTVCTO','D',8,0} )
      aadd( aStruct , {'CODCLI','C',8,0} )
      aadd( aStruct , {'NUMDOC','N',6,0} )
      aadd( aStruct , {'NUMDUP','N',6,0} )
      aadd( aStruct , {'DESDOB','C',2,0} )
      aadd( aStruct , {'STATUS','C',1,0} )
      aadd( aStruct , {'CODBANCO','C',5,0} )
      aadd( aStruct , {'NUMCH','N',6,0} )
      aadd( aStruct , {'VALORCOB','N',12,2} )
      aadd( aStruct , {'OBS','C',40,0} )
      
      select 0
      dbCreate('##krfxm' , aStruct)
      //use wArq alias 'crecpag' exclusive 
      begin sequence
        if !net_use('##krfxm',.T.,.F.,'crecpag')
           break
        endif
        index on dtos(dtvcto) + codbanco + codcli to &wInd.
        index on codbanco to &wInd2.
        set index to &wInd., &wInd2.
      end

     

    ele gera está gerando um erro no campo DATE , por que foi criado como DATETIME na base de dados, como criá-lo com DATE apenas ?

     

    Segue o error.log

     

    desde já agradeço a todos.

     

    error.log

  5. Senhores, boa tarde !

    João ,  estou tentando gravar com SQLRDD usando TDATABASE , não vai de jeito nenhum , segue trecho do código .

    arquivo com o erro está em anexo.

     

    if ::lNewRec
                //param->(rec_lock(.T.))
                nNumpg := param->numpg
                param->numpg ++
                //param->(dbunlock())
                ::oDbfOF:NUMPG := nNumpg
                dDtpg      := param->dataproc
                
                ::oDbfOF:Append()
                
                grava := .T.
        endif        

             if grava
                if pg->statuspg # 'E'
                   ::oDbfOF:STATUS1 := ' '
                endif
                //pg->statuspg  := 'E'
                ::oDbfOF:SIGLAEMIT   := cSiglaImp 
                ::oDbfOF:HORAEMISS   := nHoraEmiss 
                ::oDbfOF:STATUSPG    := 'E'
                ::oDbfOF:CUSTPG := ::cp_of16( ::oDbfOF:PRODUTO, ::oDbfOF:QTDPRO ) // CALCULA O CUSTO
                ::oDbfOF:CODVEND:= cli->codvend
                ::oDbfOF:REPASSE:= iif( ::cRepasse="SIM" , 'S', 'N' )
                ::oDbfOF:OFTESTE:= iif( ::cOFteste="SIM" , 'S', 'N' )
                ::oDbfOF:SIGLAEMIT
                ::oDbfOF:Commit()
                ::oDbfOF:Save()

    endif

     

    error.log

  6. Senhores, bom dia 

    Está acontecendo algo muito estranho , não sei por qual motivo , criação do indice , enfim !

     Tenho um sistema em FWH15.02+xHarbour123+SQLRDD  , e outro em xHarbour123+SQLRDD rodando em modo console.

    o modo console está abrindo os indices com perfeição, quando tento pelo FWH, ele abre os indices incorretamente. isso pode ser uma falha do SQLRDD com o FWH ?

  7. Bom dia , JMSilva, obrigado pela atenção da resposta.

    No próprio SQL SERVER, se abrir duas instancias no modo interativo, consigo chegar no resultado esperado.

    Agora, deve existir , senão o RLOCK não travaria o registro no SQL SERVER, tanto que consegui fazer. só preciso saber a maneira correta.

    com certeza o RLOCK deve simular algum comando , estou tentando visualizar pelo DATA ANALYSER do mesmo, mas não to conseguindo instalar.

     

     

     

  8. Senhores, boa tarde !

    Estou querendo fazer um cursor no SQL SERVER para controlar e travar uma tabela , em sua atualização. consigo usar o RLOCK() no SQLRDD, trava totalmente, tanto que no modo interativo

    do SQLSERVER, não sai enquanto não finalizar o RLOCK, enfim, gostaria de saber se alguém já fez o processo reverso, não consigo LOCKAR com o CURSOR, não surte efeito no SQLRDD.

     

    Ja tentei com "FOR UPDATE" também não vai.

     DECLARE complex_cursor CURSOR FOR

     SELECT NUMPG FROM CR_PARAM WITH (ROWLOCK);
     OPEN complex_cursor;
     FETCH FROM complex_cursor;
     UPDATE CR_PARAM SET NUMPG = NUMPG + 1
     WHERE CURRENT OF complex_cursor;
     CLOSE complex_cursor;
     DEALLOCATE complex_cursor;

     

     

     

     

     

  9. Meus amigos, bom dia !

    Fiz através do comando SR_DROPINDEX, é bem mais prático !

    Só tem um problema , se tento cria-lo novamente, ele dá um probleminha. 

        // SE EU COLOCAR ESTE TRECHO DE ABERTURA DENTRO DO FOR , ele não vai gerar o problema, sempre vai abrir e criar 

      // o índice , normalmente, agora, se deixar o NET_USE, for do loop. ele gera um erro de criação de índice, estranho né . pode ser 

    // que esteja faltando alguma propriedade.

          select 0
           if !net_use(warqdel, .T., .F., 'arqdel')   // (.T.) ABRE EXCLUSIVO
              break
           endif
       
      
    for x := 1 to 5
         If !SR_ExistIndex( "RECLPAR11" )
            index on CODCLI to "RECLPAR11"  
        endif  
        set index to RECLPAR11
        ? indexkey()
        arqdel->(dbAppend())
        arqdel->CODCLI := "CHARLIE"
        arqdel->(dbCommit())
        ? arqdel->CODCLI
        arqdel->(dbClearindex())
        if SR_DropIndex("RECLPAR11")
              ? "index deletada"
        endif
    next

  10. Senhores, bom dia !

    Alguém já se aventurou em criar tabelas temporárias com o DBCREATE , sabemos que no SQLSERVER usamos '#' para criar uma tabela temporária, tentei mandar 

    o hashtag atraves do nome da tabela no DBCREATE , gerou um erro, alguem sabe se a função DBCREATE, tem algum parametro para criar tabelas temporárias. 

    obrigado a todos.

     

  11. Senhores, boa noite !

    Agradeço muito a atenção de todos, por esta questão , o que eu fiz !

    Fui diretamente na tabela do MNGINDEXES que o SQLRDD cria para controle dos mesmos, fiz um select na mesma com o nome de criação , 

    e retornei o PHISNAME_ , e depois criei diretamente com o DROP INDEX tabela.indice_00000?? alguma coisa, sempre cria com esta extensão ,

    resolvi o problema assim , mas vou dar uma olha SISTEM, no comando sugerido  Sr_dropindex(indexname) . interessante, espero que funcione.

×
×
  • Create New...