Probleme avec socket

ai133 - 18 févr. 2013 à 15:11
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 18 févr. 2013 à 15:55
bonjour ,
j'ai un bout de code qui utilise une socket pour exécuter une requête sur un serveur ,
le problème est que le moteur mysql change la syntaxe de la requête et génère une erreur !!!! j'ai essayé d'afficher le syntaxe du requête juste avant et après l'exécution elle a l'air normale , pourtant il me donne l'erreur qu'il y a une erreur syntaxique au près de " !!!! j'utilise une socket vb.net.

3 réponses

lolokun Messages postés 1241 Date d'inscription mardi 10 octobre 2006 Statut Membre Dernière intervention 27 août 2013 7
18 févr. 2013 à 15:22
Bonjour,

Ha j'ignorais que le moteur Sql changeait de lui-même les requêtes...
Et quel code utilises-tu? un problème de " me ferait penser que tu n'as pas mis de caractère d'échappement (doubler les "")


L'expérience, c'est une connerie par jour, mais jamais la même..
0
merci de votre interet ,
ça donne vraiment l'air de ça , j'ai effectué un copier coller de la requete directement sur mysql et elle marche ! voici le code :
Imports System.Net.Sockets
Imports System.Text
Imports MySql.Data.MySqlClient

Module Module1
Sub Main()
' a_m_s("insert into test (prenom,nom) values ('ahmed','sghir')")
Dim serverSocket As New TcpListener(8888)
Dim clientSocket As TcpClient
Dim counter As Integer

serverSocket.Start()
msg("Server Started")
counter = 0
While (True)
counter += 1
clientSocket = serverSocket.AcceptTcpClient()
msg("Client No:" + Convert.ToString(counter) + " started!")
Dim client As New handleClinet
client.startClient(clientSocket, Convert.ToString(counter))
End While

clientSocket.Close()
serverSocket.Stop()
msg("exit")
Console.ReadLine()
End Sub

Sub msg(ByVal mesg As String)
mesg.Trim()
Console.WriteLine(" >> " + mesg)
End Sub

Public Class handleClinet
Dim clientSocket As TcpClient
Dim clNo As String
Public Function a_m_s(ByVal rr As String) As String
mycon_ams.Open()
Dim myconn As New MySqlCommand
Dim mytrans As MySqlTransaction
mytrans = mycon_ams.BeginTransaction
myconn.Connection = mycon_ams
myconn.Transaction = mytrans
Try
myconn.CommandText = rr
myconn.ExecuteNonQuery()
mytrans.Commit()
Return "ouiiiiiiiiii"
Catch ex As Exception
MsgBox(ex.ToString)
MsgBox(rr)
mytrans.Rollback()
Return rr
Finally
mycon_ams.Close()
End Try
End Function
Public Sub startClient(ByVal inClientSocket As TcpClient, ByVal clineNo As String)

Me.clientSocket = inClientSocket
Me.clNo = clineNo
Dim ctThread As Threading.Thread = New Threading.Thread(AddressOf doChat)
ctThread.Start()
End Sub
Private Sub doChat()
Dim requestCount As Integer
Dim bytesFrom(1000024) As Byte
Dim dataFromClient As String
Dim sendBytes As [Byte]()
Dim serverResponse As String
Dim rCount As String
requestCount = 0

While (True)
Try
requestCount = requestCount + 1
Dim networkStream As NetworkStream = clientSocket.GetStream()
networkStream.Read(bytesFrom, 0, CInt(clientSocket.ReceiveBufferSize))
dataFromClient = System.Text.Encoding.ASCII.GetString(bytesFrom)
Dim index As String = dataFromClient.Substring(0, 2).ToString
Dim corp As String = dataFromClient.Substring(2, dataFromClient.Length - 2)
If index.Equals("01") Then
msg(corp)
Dim verif As String = a_m_s(corp)
'dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))

rCount = Convert.ToString(requestCount)
serverResponse = verif.ToString

sendBytes = Encoding.ASCII.GetBytes(serverResponse)
networkStream.Write(sendBytes, 0, sendBytes.Length)
networkStream.Flush()
msg(serverResponse)
Else
msg(clNo + "--" + dataFromClient)
rCount = Convert.ToString(requestCount)
serverResponse = "Server to clinet(" + clNo + ") " + rCount + ": ce ci n'est pas une req"
sendBytes = Encoding.ASCII.GetBytes(serverResponse)
networkStream.Write(sendBytes, 0, sendBytes.Length)
networkStream.Flush()
msg(serverResponse)
End If
'dataFromClient = dataFromClient.Substring(0, dataFromClient.IndexOf("$"))

Catch ex As Exception
MsgBox(ex.ToString)
End Try

End While

End Sub
End Class
End Module
0
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
18 févr. 2013 à 15:55
Salut

Coller du code, pourquoi pas, mais sans l'indentation (espaces en tête de ligne), c'est illisible.

Je ne vois nulle part de requète dans ce code et cet amas de lignes ne m'incite pas à en faire la recherche.

Question : Pourquoi avoir choisi un Socket plutôt qu'une connexion ADO.Net standard ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on le partage (Socrate)
0
Rejoignez-nous