09. april 2003 - 19:42Der er
47 kommentarer og 1 løsning
Tjekke for opdatering på MySQL server på internettet - Hvordan ??
Jeg har rodet lidt med at få mit program til at connecte til en MySQL server på internettet, men jeg kan ikke lige se hvordan skal gøres....
Det skulle gerne være sådan at man kan højreklikke på programmet i taskbar og så få en mulighed for at tjekke for opdatering....
Hvorledes er dette muligt....???
Jeg er kommet frem til at jeg er nød til at have nogle ODBC drivere fra MySQL installeret, hvilket jeg så har gjort, mere kunne jeg ikke lige gennemskue fra de andre spørgsmål her på eksperten
Faktisk det hele....hvilken kode skal jeg sætte ind for at connecte til databasen og hvilken kode skal jeg sætte ind for at hive data ud af databasen ?
Det er lidt underordnet, da de peger på den samme dll. 2.7
Hvis det skal være helt rigtigt bør man selv oprette de rigtige objekter, men det gør det lidt sværere at skrive koden, da du så ikke kan bruge code-completion.
Så, hvis man vil gøre det så versions-uafhængigt som muligt, bør man til sidst udskifte Dim objConn As ADODB.Connection Dim objCommand As ADODB.Command Dim objRecordset As ADODB.Recordset
Set objConn = New ADODB.Connection Set objCommand = New ADODB.Command Set objRecordset = New ADODB.Recordset
med
Dim objConn As Variant Dim objCommand As Variant Dim objRecordset As Variant
Set objConn = CreateObject("ADODB.Connection") Set objCommand = CreateObject("ADODB.Command") Set objRecordset = CreateObject("ADODB.Recordset")
Det virker, meen - du få ikke lov til at connecte til den server fra andre steder end hos cliche.
Hvis du vil connecte til localhost, udskifter du bare server-navnet med localhost objConn.ConnectionString = "Driver={mySQL};Server=localhost;Port=3306;Option=131072;Stmt=;Database=sewers_dk;Uid=xxxxxx;Pwd=xxxxx;"
Og jo - du kan godt lægge det hele i koden til en knap. Det er lidt det samme der sker hvis man har det i en asp-fil. Den åbner og lukker jo også ved hvert gennemløb.
Det kan du ikke. Jeg tvivler på at de vil lukke op for det.
Hvis det er rimeligt enkelt, hvor du vil bare vil hente noget data, og vise i vb, kan du lave en asp-fil (eller lignende) på dit webhotel hos cliche, der bare indeholder det du skal bruge fra databasen, uden html-tags og lign men med koder du selv opfinder til at opdele data eller evt xml, og så hente den.
På samme måde kan man (med lidt mere kodning) poste til en asp-fil på web-serveren.
Hvis ja, så prøv at oprette en system-dsn, som bruger mysql-driveren, med localhost og dit brugernavn/password. Skift din connection-streng ud med navnet på den dsn du har oprettet, og prøv at køre igen programmet igen.
For at udvælge den højeste værdi, skal du bruge lidt sql. objCommand.CommandText = "Select max(feltet) as MaxValue from Tabellen" objRecordset.Open objCommand if not objRecordset.EOF msgbox objRecordset.Fields("MaxValue").Value end if objRecordset.Close
Ja. .Value på et felt er værdien i feltet, i den type som feltet har. Så læg den over i en streng. if not objRecordset.EOF Seneste=objRecordset.Fields("MaxValue").Value if Seneste>DenneVersion then msgbox "Der er kommet en ny" end if end if
Men men... Formatet på dit versions-nummer vil give lidt problemer. (lagde ikke lige mærke til det)
1.9.0 er fx større end 1.10.0 Så enten skal du holde dig under version 9, eller finde på en anden måde at gemme versionsnummeret. Den helt nemme er at sætte 0'er ind så der altid er samme antal cifre. Altså 1.09.0. Og eventuelt et mellemrum foran 1, hvis du forventer at komme op på version 10.0.0
Man kunne også gemme tallene i separate felter, og hente den højeste. select top 1 VersionMajor, VersionMinor, VersionMinor2 FROM Tabellen ORDER BY VersionMajor DESC, VersionMinor DESC, VersionMinor2 DESC
Top 1 betyder at den kun henter første record fra tabellen. DESC betyder at der sorteres i faldende orden.
Nej, for en integer kan jo kun indeholde ét tal. Så skal du til at parse indholdet af versionsnummeret. Det er altså nemmere at bruge 1.0.09 eller at bruge tre separate tal. Så kan man jo altid lave en beregning, så man ud af de tre tal lavet ét tal. (VersionMajor*10000)+(VersionMinor*100)+VersionMinor2
og dermed select max((VersionMajor*10000)+(VersionMinor*100)+VersionMinor2) As SidsteVersion FROM Tabellen
Hvis det er for at oprette objekter og åbne connection, så:
Set objConn = Server.CreateObject("ADODB.Connection") Set objCommand = Server.CreateObject("ADODB.Command") Set objRecordset = Server.CreateObject("ADODB.Recordset")
Ok, kunne være jeg skulle åbne et nyt spørgsmål, så du også kunne få point for det ??
Du skrev lidt oppe, at hvis jeg ville "ind" på en Cliche.dk's MySQL server, så skulle jeg hive den info ud, som jeg ville have, med noget ASP, og der efter få programmet til at tjekke siden, eller sådan noget
Og så er det jeg spørger dig....hvordan skal jeg så klare dette, da det ikke virker med at connecte til Cliche.dk uden at programmet ligger på deres server ??
Der skal selvfølgelig være kommaer i Open. Det er mig der har været lidt for hurtig. Og den Dim er da også noget vrøvl. dim xmlhttp as msxml2.xmlhttp40 Set xmlhttp=new msxml2.xmlhttp40 xmlhttp.Open "GET", "http://www.domain.dk/version.asp", False xmlhttp.Send VersionsInfo=xmlhttp.responseText
Du skal tilføje en reference til Microsoft XML 4.
MEN for at gøre den mere versions uafhængig, og droppe afhængigheden af xml 4, kan du undvære referencen, og bruge: dim xmlhttp as variant Set xmlhttp= CreateObject("msxml2.xmlhttp") xmlhttp.Open "GET" "http://www.domain.dk/check_version.php", False xmlhttp.Send VersionsInfo=xmlhttp.responseText
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.