Clipper On Line • Ver Tópico - SQL em resource

SQL em resource

Projeto Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

 

SQL em resource

Mensagempor JoséQuintas » 27 Ago 2020 14:44

Tô aqui pensando....

STATIC FUNCTION JPUFcreateSQL()

   RETURN ;
      "CREATE TABLE IF NOT EXISTS JPUF ( " + ;
      "UFUF VARCHAR(2) NOT NULL DEFAULT '', " + ;
      "UFDESCRI VARCHAR(80) NOT NULL DEFAULT '', " + ;
      "UFTRIUF VARCHAR(6) NOT NULL DEFAULT '', " + ;
      "UFINFINC VARCHAR(80) NOT NULL DEFAULT '', " + ;
      "UFINFALT VARCHAR(80) NOT NULL DEFAULT '', " + ;
      "PRIMARY KEY ( UFUF ) " + ;
      ") COLLATE=latin1_swedish_ci ENGINE=InnoDB"


Ao invés disso, poderia ser isto:

STATIC FUNCTION JPUFCreateSQL()
#pragma __binarystreaminclude "tabelas\jpuf.sql"   | RETURN %s


E deixar as estruturas em arquivo separado.

Ficaria interessante também....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18127
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1215 vezes

SQL em resource

Mensagempor ivanil.marcelino » 09 Abr 2021 15:52

Post antigo, mas pode ser útil para outros ao abrir...
Eu passei a usar Text/Endtext ficou muito bom, pois posso posso criar criar e testar o código sql externamente e depois só colar no PRG, se precisar de manutenção so inverter; ficou muito bom mesmo esta nova forma de trabalhar, antes precisava ficar tirando os delimitadores.
Caso a compilação apresente erro, faça a declaração no topo;
#xcommand TEXT <into:TO,INTO> <v> => #pragma __cstream|<v>:=%s


Static function SQLFerias()
    Local cSQL
    Text into cSQL
        select campo07 as IDSap,
            pfunc.chapa,
            nome,
            dataadmissao,
            datademissao,
            Convert(datetime,DTVENCFERIAS,103) as DtVencFerias,
            CODSITUACAO+'.'+PCODSITUACAO.DESCRICAO as CodTipo,
            DtIniPerAquis,pfhstfer.DtFimPerAquis,NroPeriodo as Periodo,
            Convert(datetime,DtIniGozo,103) as DtIniGozo,Convert(DateTime,DtFimGozo,103) as DtFimGozo,
            pf.datapagto,
            DiasAbono,NroFaltas as Faltas
        from  pfunc
            left join pfhstfer on pfunc.chapa=pfhstfer.chapa
            LEFT JOIN PCODSITUACAO ON CODSITUACAO = PCODSITUACAO.CODCLIENTE
            left join PFUFERIASPER as PF on pfhstfer.codcoligada=pf.codcoligada and
                pf.chapa=pfhstfer.chapa and 
                pfhstfer.dtfimperaquis=PF.FimPerAquis and
                pfhstfer.DtIniGozo=pf.datainicio
   
            left join c_txtSeparado on '0'+campo01=pfunc.chapa
        where datademissao is null or datademissao >= convert(date,'01-03-2021',103)
            --and pfunc.chapa='01000'
            --and dtvencferias=dtfimperaquis
            order by chapa,pfhstfer.dtfimperaquis desc,Periodo desc   
    EndText
    Return cSQL
ivanil.marcelino
Usuário Nível 1

Usuário Nível 1
 
Mensagens: 8
Data de registro: 26 Jul 2017 09:08
Cidade/Estado: Floripa/sc
Curtiu: 1 vez
Mens.Curtidas: 3 vezes

SQL em resource

Mensagempor alxsts » 09 Abr 2021 19:05

Olá!

Veja outro exemplo
O único inconveniente é que fora do prg o texto perde a indentação...
[]´s
Alexandre Santos (AlxSts)
alxsts
Colaborador

Colaborador
 
Mensagens: 2945
Data de registro: 12 Ago 2008 15:50
Cidade/Estado: São Paulo-SP-Brasil
Curtiu: 21 vezes
Mens.Curtidas: 248 vezes




Retornar para Harbour

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 4 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro