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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 3109
- 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: 20415
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
- Curtiram: 1 vez
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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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: 3109
- 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