Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Base de données sur Internet: Suite (et fin?)

3 réponses
Avatar
Jean-Marc
Hello tous,

l'idée m'a amusé, et j'ai adapté Rabbit pour pouvoir traiter ce
problème. Le résultat est la! on peut maintenant utiliser le serveur
(ou une sous partie) pour servir des requêtes SQL, et récupérer le
résulat sous une forme convenue. J'ai implémenté HTML et XML, ce
dernier était surement la meilleure solution. Cerise sur le gateau: on
peut utiliser le serveur depuis un programme VB, il suffit d'envoyer le
message via Winsock, comme ceci:

' adresse du serveur, à configurer, par exemple
Winsock1.RemoteHost = "127.0.0.1"
' ou alors Winsock1.RemoteHost = "myjmnhome.dyndns.org"
Winsock1.RemotePort = 80
Winsock1.Connect
While Winsock1.State <> sckConnected
DoEvents
Wend
Winsock1.SendData "GET
/_DATA_REQUEST_?<message><db>dbuser.mdb</db><login>jm</login><password>t
oto</password><nature>SQLQUERY</nature><format>XML</format><query>select
id,nom,prenom+from+table1</query></message> HTTP/1.0" & vbCrLf

On récupère tout simplement avec Winsock1_DataArrival;
Astuce: la réponse termine par "</message>"

Il ne faut que quelques heures pour écrire quelques fonctions d'accès
aux
résultats sous une forme sympa, si besoin est. Sinon, le parsing à la
main
du résulat sous forme XML est trivial à coder.

Mais on peut aussi le faire directement depuis un browser:

http://myjmnhome.dyndns.org/_DATA_REQUEST_?<message><db>dbuser.mdb</db><login>jm</login><password>toto</password><nature>SQLQUERY</nature><format>XML</format><query>select%20*%20from%20Table1</query></message>

Il peut servir n'importe quelle base, les requetes peuvent être
n'importe quelle requête SQL (Access). POur cet exemple, ma base
s'appelle dbuser.mdb, le login et le mot de passe n'ont pas
d'importance, nature doit etre SQLQUERY, format peut être "HTML" ou
"XML". Il n'y a qu'une table, Table1, avec 3 records. Les champs sont
id, nom et prenom.


Exemples de requêtes:

SELECT * from Table1
SELECT ID, NOM, PRENOM for Table1
SELECT COUNT(*) AS EFFECTIF FROM TABLE1
etc.

Amusant, non ?

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ; _no_spam_jean_marc_n2@yahoo.fr

3 réponses

Avatar
Jean-Marc
Et la suite:

http://myjmnhome.dyndns.org/dataserver.htm

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;
Avatar
pierre.rivet
Bonjour Jean Marc,

Maintenant, ça y est, la rentrée est faite, les clients reviennent...

Je conserve soigneusement votre mail et votre adresse, et dès que j'ai un
moment, je m'y penche à nouveau.....

Merci de vous donner tant de mal, mais on sent que le sujet vous a
passionné, et qu'il vous passionne encore..

J'ai mis votre site en Favori, j'ai commencé à le chiader, mais j'ai dû
emmener mon épouse...

A bientôt,

Pierre

"Jean-Marc" a écrit dans le message de news:
43b99bd0$0$331$
Et la suite:

http://myjmnhome.dyndns.org/dataserver.htm

--
Jean-marc
Tester mon serveur (VB6) => http://myjmnhome.dyndns.org
"There are only 10 kind of people
those who understand binary and those who don't."
mailto: remove '_no_spam_' ;



Avatar
Guy-TTN
Héhé je viens de faire cette même démarche pour enregistrer mon programme
sur mon site PHP

Mais j'ai placé ma requête dans l'événement Connect du winsock(on envoie si
on est bien connecté) et ferme la connection dans l'événement
SendComplete(on peut fermer la connection, l'envoi est bien terminé), le
send get pointe vers une page php : A l'intérieur la demande est traitée,
elle recupère aussi la date et l'heure du serveur (et non pas de l'envoi)

Private Sub sckConnect_Connect()
sckConnect.SendData "GET send.php?" & txten & " HTTP/1.0" _
& vbCrLf & "Accept: */*" & vbCrLf & "User-Agent: Winsock" & vbCrLf & _
"host:lesitea.moi" & vbCrLf
End Sub

Private Sub sckConnect_Error(ByVal Number As Integer, Description As String,
ByVal Scode As Long, ByVal Source As String, ByVal HelpFile As String, ByVal
HelpContext As Long, CancelDisplay As Boolean)
Err.Clear
End Sub

Private Sub sckConnect_SendComplete()
sckConnect.CloseEnd Sub
end sub

La demande d'envoi est dans une fonction

global txten as string
Sub envoi()
txten = "nomprenon=" & np & "&lic=" & numlicence
On Error GoTo Err_cmdConnect
sckConnect.Close
sckConnect.LocalPort = 0
sckConnect.Connect "lesitea.moi", 80
Exit Sub

Err_cmdConnect: 'Pas de connection on ferme
sckConnect.Close
end sub

--
Touti