• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

watt

[VB.Net 2005] Um problema com Strings Publicas

11 mensagens neste tópico

Boas pessoal!

tenho estado com um problema muito estranho... tenho um modulo com umas strings Publicas  por exemplo user, então acontece que no formulario1 dou um valor ao user (user="watt"), depois no formulario2 tento fazes uma sintax em sql usando a pariavel.

sql="Select * from utilizadores where user = ' & user & " '; ";

o que é que aconce ... a sintax fica incompleta

Select * from utilizadores where user ='watt

falta a '; do fim ... ou seja ... falta sempre td o que vem a seguir á variavel ... alguem sabe pq é que me aconte isto ??

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

sql="Select * from utilizadores where user = ' & user & " '; ";

Eu nunca vi vb à frente, mas não faltam praí umas aspas? Tipo

sql="Select * from utilizadores where user = '" & user & " '; ";

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenho

sql="Select * from utilizadores where user = ' & user & " '; "

só que lá em cima pus no fim um ; por acidente.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Realmente é um bocado estranho. Experimenta por um breakpoint nessa linha e usa os Watchs pra veres se ta algo a correr mal.

Cumps

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

tenho

sql="Select * from utilizadores where user = ' & user & " '; "

só que lá em cima pus no fim um ; por acidente.

Faz uma coisa... copia exactamente o codigo para aki...

é k falta mesmo umas " aspas

sql="Select * from utilizadores where user = ' (aki ") & user & " '; "

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

neste momento estou confuso, não sei se o problema é do servidor ou cliente... é o seguinte o cliente manda a sintax em sql para o server, e depois este responde o resultado.

Codigo do Cliente

- no moduluo

Public user as string

- no form de login

se for aceite

user= txtbuser.text

- no formulario2

dim

sql="Select * from utilizadores where user = ' & user & " '; "

        Dim msg As [byte]() = Encoding.UTF8.GetBytes(sql)

        stream.Write(msg, 0, msg.Length)

--- Mandou para o server, agora no server tenho -----------------------

stream.Read(bytes, 0, n)

dados = Encoding.UTF8.GetString(bytes)

depois qd vou correr o comando diz erro na sintax, por causa de uma aspa q não percebo... no debug, realmente falta uma aspa no fim.

n sei onde se perde mas agora n sei se o problema é no envio ou não

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Ve bem esta imagem!!!

imagemvr8.jpg

sql="Select * from utilizadores where user = '" & user & " '; "

só pode ser isto

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

épa... escrevi mal akino forum, pq noprograma tenho essa aspa

o cliente enviou:

"Select * from utilizadores where user = '" & user & " ' and pass='" & passw & "'; "

o server qd vai executar diz:

comando já transformado - "Select * from users where user = 'x' and password = '7694f4a66316e53c8cdd9d9954bd611d';

MySql.Data.MySqlClient.MySqlException = {"#42000Você tem um erro de sintaxe no seu SQL próximo a ';' na linha 1"}

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

e sem o ponto e virgula do final???

mysql n é mt o meu forte... mas experimenta!!!!

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

mas já está lá.o que eu estou a reparar é que sp q tiro dados da stream, nunca trabalhão bem, e as string ao que parecetêm deestar entr aspas,e as retiradas da stream só têm a 1º aspa... é o q repareri no debug.

e se tentar juntar mais kalker coisa á string com um & ou +, ele ignora o que vem depois a estes 2 caracteres.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu não faço os meus selects assim, e ainda por cima os mais complexos, uso parâmetros que depois o controlador se encarrega de substituir

faço tipo isto :

sql = "SELECT * " & _

        "FROM RAT_PLA_TAR_05 " & _

          "WHERE RPT_NUM_TAR like :pRPT_NUM_TAR AND " & _

          "      RPT_DES_TAR like :pRPT_DES_TAR AND " & _

          "((RSE_RDI_RDI_COD_DIR like :pRSE_RDI_RDI_COD_DIR) OR (RSE_RDI_RDI_COD_DIR IS NULL)) AND " & _

          "((RSE_RSE_COD_SER like :pRSE_RSE_COD_SER) OR (RSE_RSE_COD_SER IS NULL)) AND " & _

          "((RGR_RGR_USER like :pRGR_RGR_USER) OR (RGR_RGR_USER IS NULL)) AND " & _

          "      PRO_RPO_COD_PRO like :pPRO_RPO_COD_PRO "

        Dim cmd As New OracleCommand(sql, conn)

        Dim da As New OracleDataAdapter(cmd)

        Dim ds As New DataSet

        Dim myCol As New DataColumn

        Dim myRow As DataRow

        cmd.Parameters.Add("pRPT_NUM_TAR", rs.RPT_NUM_TAR)

        cmd.Parameters.Add("pRPT_DES_TAR", rs.RPT_DES_TAR)

        cmd.Parameters.Add("pPRO_RPO_COD_PRO", rs.PRO_RPO_COD_PRO)

        cmd.Parameters.Add("pRSE_RSE_COD_SER", rs.RSE_RSE_COD_SER)

        cmd.Parameters.Add("pRSE_RDI_RDI_COD_DIR", rs.RSE_RDI_RDI_COD_DIR)

        cmd.Parameters.Add("pRGR_RGR_USER", rs.RGR_RGR_USER)

        Try

            da.Fill(ds, "RAT_PLA_TAR_05")

            For Each myRow In ds.Tables(0).Rows

                For Each myCol In ds.Tables(0).Columns

                    rs.fill(myCol.ColumnName, myRow(myCol).ToString())

                Next

            Next

            Return ds.Tables(0).Rows.Count.ToString

        Catch ex As Exception

            Return ex.Message.ToString

        End Try

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora