Página 1 de 1
Sql no meio do código xBase
Enviado: 24 Fev 2014 15:15
por cruz_brasil
Salve gente,
Tenho me incomodado em ter de escrever todo o código SQL colar entre aspas e depois mandar a string para uma função que executa no servidor e retorna o resultado em uma array,
venho tentando imaginar um modo de fazer que nem no PHP onde vc esta programando em HTML e quando vai começar um código em PHP descrimina com <% ... PHP ... %>.
Alguem teria alguma idéia de como poderia se fazer isso ?
Ex.
Código: Selecionar todos
FUNCTION TMP()
FOR mI:=1 TO nFILIAIS
nVAL:=FUNCAO(PAR1,PAR2)
...
<%
select coluna,coluna,coluna from tabela where coisa and tal
...
create or replace function etc e tal...
...
%>
cRET:-OUTRA_FUNC(PAR,PAR,PAR)
NEXT
RETURN(.T.)
Abraço.
Sql no meio do código xBase
Enviado: 24 Fev 2014 16:18
por bencz
Bm, e se for como a propria linguagem xBase ?
Código: Selecionar todos
local oError := nil
local cConnString := "PGS=localhost;UID=USUARIO;PWD=SENHA;DTB=BANCODEDADOS"
SR_SETBASELANG(2) // muda o idioma para portugues
::nCnn := SR_AddConnection(CONNECT_POSTGRES, cConnString )
if ::nCnn < 0
hwg_Msgstop("Erro ao se conectar com o banco de dados")
quit
endif
#ifdef TESTE
// teste
aStruct := {{"EMPNO","N",10,0 },;
{"EMPNAME","C",50,0},;
{"SALARY","N",6,2}}
USE "EMP" EXCLUSIVE VIA ::cRDD
For i = 1 to 100
Append Blank
Replace EMPNO with i
Replace EMPNAME with "aaaa"
Replace SALARY with 10.5
Next
#endif
Isso é possivel com o SqlRDD do xHB.com
Sql no meio do código xBase
Enviado: 24 Fev 2014 17:50
por alxsts
Olá!
Em qualquer linguagem de programação, misturar código fonte da linguagem com código SQL nunca foi uma boa ideia. Principalmente em código HTML, pois facilita SQL injection.
O ideal é aproveitar a capacidade dos SGBDs de armazenar procedimentos e criar diversas stored procedures com o teu código SQL. Depois, no código xBase, crie uma classe ou função que recebe os parâmetros e executa as stored procedures. Este é o conceito de programação em n camadas (n tier).
Sql no meio do código xBase
Enviado: 25 Fev 2014 11:21
por cruz_brasil
Olá Bencz, Alxsts,
O exemplo do bencz é exatamente o que eu estou tentando capar fora do nosso sistema, gostaria de usar todo o potencial do banco como o alxsts falou.
Eu tenho feito muitas PL/SQL, mas mesmo assim isto precisa ser executado para gravar no banco e é ai que eu escrevo toda a PL em um sql admin, testo e depois colo tudo no xBase e tenho de colocar todas as aspas para mandar para uma classe q executa toda a string no banco.
Ai quando preciso dar manutenção nessa PL/SQL, tenho de copiar tudo do meu .prg, remover todas as aspas, fazer a manutenção, colcar no .prg denovo e adicionar tooooodas as aspas denovo...
por isso estava pensando em algo como no PHP que vc define entre dois identificadores que o codigo ali dentro deve ser interpretado de outra forma. ou que aquele codigo ali dentro se transfomer em uma string para depois poder mandar ele para a classe q vai executar no banco.
abraços.