Select mysql com case e if
Moderador: Moderadores
-
jcsprog
- Usuário Nível 2

- Mensagens: 63
- Registrado em: 27 Abr 2005 12:04
- Localização: sao paulo - jd.brasil
Select mysql com case e if
ola amigos tenho aplicao em mysql com harbour x miniqui
mas ao gerar o select em anexo que esta funcionando no browse dentro da aplicação não encontra
c_codigo:="0000000101"
oQuery := oServer:Query( "Select FILIACAO,NOME_RESP,FONE1_RESP,FONE2_RESP,PRIO_RESP,RESP_CRIA"
oQuery+=" CASE PRIO_RESP WHEN 1 THEN 'Alta'"
oQuery+=" WHEN 2 THEN 'Media'"
oQuery+=" WHEN 3 THEN 'Baixa'"
oQuery+=" END AS PRIOR,"
oQuery+=" IF(RESP_CRIA=1,'Sim','Não') IS RESPON"
oQuery+=" From escola.tab_resp WHERE RA_RESP="+'c_codigo')
agradeço a ajuda
mas ao gerar o select em anexo que esta funcionando no browse dentro da aplicação não encontra
c_codigo:="0000000101"
oQuery := oServer:Query( "Select FILIACAO,NOME_RESP,FONE1_RESP,FONE2_RESP,PRIO_RESP,RESP_CRIA"
oQuery+=" CASE PRIO_RESP WHEN 1 THEN 'Alta'"
oQuery+=" WHEN 2 THEN 'Media'"
oQuery+=" WHEN 3 THEN 'Baixa'"
oQuery+=" END AS PRIOR,"
oQuery+=" IF(RESP_CRIA=1,'Sim','Não') IS RESPON"
oQuery+=" From escola.tab_resp WHERE RA_RESP="+'c_codigo')
agradeço a ajuda
jcsprog
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Select mysql com case e if
Erro Clipper/Harbour.
Tá passando o nome da variável e não o conteúdo.
ou
Tá passando o nome da variável e não o conteúdo.
Código: Selecionar todos
"... WHERE RA_RESP=" + ['] + c_Codigo + [']
Código: Selecionar todos
"...WHERE RA_RESP=" + StringSql( c_Codigo )
FUNCTION StringSQL( cValue )
RETURN ['] + cValue + [']
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Select mysql com case e if
Olá!
Sua mensagem não está clara... está retornando algum erro?
Analisando o conteúdo postado, creio que sim. É só comparar as duas consultas. Creio que se você ajustar a que está em foramto texto para ficar igual à da janela do ResultSet, vai dar certo. Veja:
Sua mensagem não está clara... está retornando algum erro?
Analisando o conteúdo postado, creio que sim. É só comparar as duas consultas. Creio que se você ajustar a que está em foramto texto para ficar igual à da janela do ResultSet, vai dar certo. Veja:
Código: Selecionar todos
oQuery := oServer:Query( "Select FILIACAO,NOME_RESP,FONE1_RESP,FONE2_RESP,PRIO_RESP,RESP_CRIA ==> Falta uma vírgula ao final desta linha"Código: Selecionar todos
oQuery+=" IF(RESP_CRIA=1,'Sim','Não') IS RESPON" ==> Aqui, ao invés de "IS", é "AS"[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
Select mysql com case e if
Eu utilizo BIND fica mais bonito
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Select mysql com case e if
Também reparei na digitação errada, mas acho que foi no post.
O problema mesmo é que ele tá passando o nome da variável.
WHERE RA_RESP='c_codigo'
ao invés de
WHERE RA_RESP='0000001'
O problema mesmo é que ele tá passando o nome da variável.
WHERE RA_RESP='c_codigo'
ao invés de
WHERE RA_RESP='0000001'
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
jcsprog
- Usuário Nível 2

- Mensagens: 63
- Registrado em: 27 Abr 2005 12:04
- Localização: sao paulo - jd.brasil
Select mysql com case e if
ola no sistema nao apresenta erro
vou realizar a alteracao na variavel ok
agraddecoa ajuda
vou realizar a alteracao na variavel ok
agraddecoa ajuda
jcsprog
-
alxsts
- Colaborador

- Mensagens: 3092
- Registrado em: 12 Ago 2008 15:50
- Localização: São Paulo-SP-Brasil
Select mysql com case e if
Olá!
Também acho...JoséQuintas escreveu:O problema mesmo é que ele tá passando o nome da variável.
O que chama de "bind"?asimoes escreveu:Eu utilizo BIND fica mais bonito
[]´s
Alexandre Santos (AlxSts)
Alexandre Santos (AlxSts)
-
jcsprog
- Usuário Nível 2

- Mensagens: 63
- Registrado em: 27 Abr 2005 12:04
- Localização: sao paulo - jd.brasil
Select mysql com case e if
Ola
realizei as mudanças e o erro agora e este
Principe.prg(1054) Error E0020 Incomplete statement or unbalanced delimiters
Principe.prg(1060) Error E0030 Syntax error "syntax error at ')'"
2 errors
VARIAVEL ===>>> R_RA:="0000000101" IGUAL A DO BROWSE DO MYSQL
oQuery := oServer:Query("Select FILIACAO,NOME_RESP,FONE1_RESP,FONE2_RESP,PRIO_RESP,RESP_CRIA, CASE tab_resp.PRIO_RESP" LINHA -> 1054
oQuery+=" WHEN 1 THEN 'Alta'"
oQuery+=" WHEN 2 THEN 'Media'"
oQuery+=" WHEN 3 THEN 'Baixa'"
oQuery+=" END AS PRIOR,"
oQuery+=" IF(RESP_CRIA=1,'Sim','Não') AS pode,"
oQuery+=" From escola.tab_resp WHERE tab_resp.RA_RESP="+[']+R_RA+[']) LINHA ->1060
==========================================================================================
Utilizo este select e funciona más ai tenho que atualizar , gostaria de fazer direto
oQuery := oServer:Query( "Select FILIACAO,NOME_RESP,FONE1_RESP,FONE2_RESP,PRIO_RESP,RESP_CRIA From escola.tab_resp WHERE
tab_resp.RA_RESP='"+R_RA+"'")
if oQuery:LastRec() > 0
nCounter++
oRow := oQuery:GetRow(i)
do case
case oRow:fieldGet(5) = "1"
a_prio:="Alta"
case oRow:fieldGet(5) = "2"
a_prio:="Media"
case oRow:fieldGet(5) = "3"
a_prio:="Baixa"
endcase
a_Resp:=if(oRow:fieldGet(6)="1","Sim","Não")
aadd(a_rray,{oRow:fieldGet(1),oRow:fieldGet(2),oRow:fieldGet(3),oRow:fieldGet(4),a_prio,a_Resp})
oQuery:Skip(1)
Aluno_1.G_Parente.SetArray( a_rray )
realizei as mudanças e o erro agora e este
Principe.prg(1054) Error E0020 Incomplete statement or unbalanced delimiters
Principe.prg(1060) Error E0030 Syntax error "syntax error at ')'"
2 errors
VARIAVEL ===>>> R_RA:="0000000101" IGUAL A DO BROWSE DO MYSQL
oQuery := oServer:Query("Select FILIACAO,NOME_RESP,FONE1_RESP,FONE2_RESP,PRIO_RESP,RESP_CRIA, CASE tab_resp.PRIO_RESP" LINHA -> 1054
oQuery+=" WHEN 1 THEN 'Alta'"
oQuery+=" WHEN 2 THEN 'Media'"
oQuery+=" WHEN 3 THEN 'Baixa'"
oQuery+=" END AS PRIOR,"
oQuery+=" IF(RESP_CRIA=1,'Sim','Não') AS pode,"
oQuery+=" From escola.tab_resp WHERE tab_resp.RA_RESP="+[']+R_RA+[']) LINHA ->1060
==========================================================================================
Utilizo este select e funciona más ai tenho que atualizar , gostaria de fazer direto
oQuery := oServer:Query( "Select FILIACAO,NOME_RESP,FONE1_RESP,FONE2_RESP,PRIO_RESP,RESP_CRIA From escola.tab_resp WHERE
tab_resp.RA_RESP='"+R_RA+"'")
if oQuery:LastRec() > 0
nCounter++
oRow := oQuery:GetRow(i)
do case
case oRow:fieldGet(5) = "1"
a_prio:="Alta"
case oRow:fieldGet(5) = "2"
a_prio:="Media"
case oRow:fieldGet(5) = "3"
a_prio:="Baixa"
endcase
a_Resp:=if(oRow:fieldGet(6)="1","Sim","Não")
aadd(a_rray,{oRow:fieldGet(1),oRow:fieldGet(2),oRow:fieldGet(3),oRow:fieldGet(4),a_prio,a_Resp})
oQuery:Skip(1)
Aluno_1.G_Parente.SetArray( a_rray )
jcsprog