Ciao, ho bisogno del vostro aiuto ...
Sto cercando di realizzare un'applicazione che mi visualizza i dati che sono all'interno di un database Mysql presente su un server remoto.
Ho letto, o meglio ho provato a leggere e capire il tutorial in Inglese, ma non mi è stato di aiuto, o meglio non ho capito la parte PHP. Da quel poco che sono riuscito a capire dovrebbe fare da anello di congiunzione .... giusto ?
Chi mi puo' aiutare ? .... come e dove va inserita la parte PHP ?
Grazie
Marco
'Activity module
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
Dim hc As HttpClient
End Sub
Sub Globals
'These global variables will be redeclared each time the activity is created.
'These variables can only be accessed from this module.
End Sub
Sub Activity_Create(FirstTime As Boolean)
hc.Initialize("hc")
Dim req As HttpRequest
Dim web As String
Dim query As String
'il database , login e password sono dichiarati in demo.php
'address è una tabella, mentre firstname e lastname sono due campi
query="select firstname , lastname from address"
'query="insert into address (firstname , lastname) values ('aa','bbb')"
web="http://giannimaione.altervista.org/demo.php"
req.InitializePost2(web, query.GetBytes("UTF8"))
hc.Execute(req, 1)
'hc.Execute(req,2)
End Sub
Sub hc_ResponseError (Response As HttpResponse, Reason As String, StatusCode As Int, TaskId As Int)
Msgbox("errore","")
End Sub
Sub hc_ResponseSuccess (Response As HttpResponse, TaskId As Int)
If TaskId=1 Then
Dim res As String
res = Response.GetString("UTF8")
Dim parser As JSONParser
parser.Initialize(res)
Dim countries As List
countries = parser.NextArray 'returns a list with maps
For i = 0 To countries.Size - 1
Dim t1,t2 As String
t1 = m.Get("lastname")
t2=m.Get("firstname")
Msgbox(t1,t2)
Next
Response.Release
End If
ExitApplication
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
In Visual Basic e Real Basic ho sempre fatto accessi diretti all'host contenete il file MySql ...
Un acesso diretto anche con adroid sarebbe fantastico .... ma non ho idea di come trutturare il programma .
Da quel poco cheho capito il file PHP andrebbe caricato su di un dominio di appoggio, anche che non sial quello che contiene il file mysql ... giusto ?
Grazie
Marco
Sub Process_Globals
End Sub
Sub Globals
' http://www.b4x.com/forum/additional-libraries-classes-official-updates/22291-mysql-library-jdbc.html#post129399
Dim Button1 As Button
Dim ListView1 As ListView
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Main")
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
Dim db As MYSQL
Dim L As List
db.setDatabase("server","schema","user","password")
L = db.Query("Select * from t_000_schede")
If L.IsInitialized=False Then
Msgbox("Records Not Found","Warning")
Return
Else
For i = 0 To L.Size
ListView1.AddSingleLine(L.Get(i))
Next
End If
End Sub
'Activity module
Sub Process_Globals
'These global variables will be declared once when the application starts.
'These variables can be accessed from all modules.
End Sub
Sub Globals
Dim AdoConn As AdoConnection
Dim AdoRec As AdoRecordset
Dim Result As Int
Dim ResultS As String
Dim Button1 As Button
Dim EditText1 As EditText
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Main")
End Sub
Sub AdoConnectionError (Message As String, State As String, ErrorCode As Int)
Log("AdoConnectionError : " & CRLF & "Error message : " & Message & CRLF & "State : " & State & CRLF & "Error code : " & ErrorCode)
End Sub
Sub AdoRecordsetError (Message As String, State As String, ErrorCode As Int)
Log("AdoRecordsetError : " & CRLF & "Error message : " & Message & CRLF & "State : " & State & CRLF & "Error code : " & ErrorCode)
End Sub
Sub Activity_Resume
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub Button1_Click
AdoConn.ConnectionString("server","port"," UTF-8","schema","user","password")
AdoConn.ConnectionTimeout=1
AdoConn.LoginTimeout=1
AdoConn.SocketTimeout=1
AdoConn.InitializeEvent
AdoConn.Open
AdoRec.InitializeEvent
AdoRec.Connection=AdoConn
AdoRec.SqlStatement=EditText1.Text
AdoRec.Open
If AdoRec.isClosed Then
Msgbox("isClose","")
Else
Msgbox("mmmmm","")
End If
If AdoRec.RecordCount>0 Then
Do While Not(AdoRec.EOF)
Log(AdoRec.Field("a01"))
AdoRec.MoveNext
Loop
End If
Msgbox("Record " & AdoRec.MaxRecords,"")
AdoRec.Close
End Sub
Domani mattina provero i tuoi codici
Questa sera ho fatto qualche prova con la libreria MYSql ... ma mi da un mancato collegamen ... ha credo non riesca a collegarsi all'Host (DB4free.net)
Con RealBAsic, apro lo stesso file MySQL tranquillamente.
AdoRec.FieldSet("Longitudine", txtLongitudine.Text)
AdoRec.Update
Allora ho creato 2 app per fare la connessione, una usa solo la libreria MYSQL un altra usa la libreria ado, ma come vuole il buon dio, ogni tanto mi sfasa il cervello.
Java
B4X:Sub Process_Globals End Sub Sub Globals ' http://www.b4x.com/forum/additional-libraries-classes-official-updates/22291-mysql-library-jdbc.html#post129399 Dim Button1 As Button Dim ListView1 As ListView End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("Main") End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub Sub Button1_Click Dim db As MYSQL Dim L As List db.setDatabase("server","schema","user","password") L = db.Query("Select * from t_000_schede") If L.IsInitialized=False Then Msgbox("Records Not Found","Warning") Return Else For i = 0 To L.Size ListView1.AddSingleLine(L.Get(i)) Next End If End Sub
Questa con ado
B4X:'Activity module Sub Process_Globals 'These global variables will be declared once when the application starts. 'These variables can be accessed from all modules. End Sub Sub Globals Dim AdoConn As AdoConnection Dim AdoRec As AdoRecordset Dim Result As Int Dim ResultS As String Dim Button1 As Button Dim EditText1 As EditText End Sub Sub Activity_Create(FirstTime As Boolean) Activity.LoadLayout("Main") End Sub Sub AdoConnectionError (Message As String, State As String, ErrorCode As Int) Log("AdoConnectionError : " & CRLF & "Error message : " & Message & CRLF & "State : " & State & CRLF & "Error code : " & ErrorCode) End Sub Sub AdoRecordsetError (Message As String, State As String, ErrorCode As Int) Log("AdoRecordsetError : " & CRLF & "Error message : " & Message & CRLF & "State : " & State & CRLF & "Error code : " & ErrorCode) End Sub Sub Activity_Resume End Sub Sub Activity_Pause (UserClosed As Boolean) End Sub Sub Button1_Click AdoConn.ConnectionString("server","port"," UTF-8","schema","user","password") AdoConn.ConnectionTimeout=1 AdoConn.LoginTimeout=1 AdoConn.SocketTimeout=1 AdoConn.InitializeEvent AdoConn.Open AdoRec.InitializeEvent AdoRec.Connection=AdoConn AdoRec.SqlStatement=EditText1.Text AdoRec.Open If AdoRec.isClosed Then Msgbox("isClose","") Else Msgbox("mmmmm","") End If If AdoRec.RecordCount>0 Then Do While Not(AdoRec.EOF) Log(AdoRec.Field("a01")) AdoRec.MoveNext Loop End If Msgbox("Record " & AdoRec.MaxRecords,"") AdoRec.Close End Sub
Ricordo anche che nel manifesto deve essere messo questo... testo originale
This is my second library very similiar to MSSQL.
There are only three functions.
1) setDatabase("Server IPNUMBER (not name)","databasename","username","password")
2) Query("select * from tablename") --> return rows as a LIST
3) TableList --> return table names rows as a LIST.
You can also write create, update or delete queries.
You must copy MYSQL.jar, MYSQL.xml files to your addititonal library folder.
You should download jdbc driver from Mysql site:
Download jdbc driver
After you must copy mysql-connector-java-5.1.22-bin.jar file to your additional library folder.
You must add Manifest
AddPermission("android.permission.INTERNET")
AddPermission("android.permission.ACCESS_NETWORK_S TATE")
Maybe you need to allow access to MySQL;
mysql> grant all privileges on *.* to root@'%' with grant option;
you can change username root to another one.
Fine testo originale Link http://www.b4x.com/forum/additional...ates/22291-mysql-library-jdbc.html#post129399
Il risultato e sempre lo stesso nessun record, anzi sembra che non ci sia connessione, ma se faccio lo stesso con pocket desktop, quindi senza webservice tutto funziona (realStudio) in quanto il server mysql e aperto anche da accessi fuori localhost.
Chi vuole provare questi 2 codici e dirmi se funzionano, nel frattempo aspetto la risposta da register per vedere se non è una loro limitazione, anche se il messaggio di connessione avvenuta è "mmmmmmm" quindi ok.
Thank
Mi hanno risposto per questo cambiamento ma non trovo differenza
Once I changed the above line, it worked fine and displayed the data in the listview as it should. You might want to check the info you have in this line or permissions???? db.setDatabase("server ipnumber (not name)","databasename","username","password")
Sub Globals
Dim AdoConn As AdoConnection
Dim AdoRec As AdoRecordset
end sub
sub OpenDB
AdoConn.ConnectionString("xxx.xxx.xxx.xxx","3306","UTF-8","nomeDB","UserID","Password")
AdoConn.ConnectionTimeout=1
AdoConn.LoginTimeout=1
AdoConn.SocketTimeout=1
AdoConn.InitializeEvent
AdoConn.Open
AdoRec.InitializeEvent
AdoRec.Connection=AdoConn
AdoRec.SqlStatement="select * from anagrafica order by Farmacia "
AdoRec.Open
end sub
Sub ElencoClienti
If AdoRec.RecordCount>0 Then
ListView1.Clear
Do While Not(AdoRec.EOF)
ListView1.AddSingleLine (AdoRec.Field("Farmacia"))
AdoRec.MoveNext
Loop
End If
End Sub
Sub SchedaCliente
lblRagioneSociale.Text= AdoRec.Field("Farmacia")
lblIndirizzo.Text = AdoRec.Field("Indirizzo")
lblLocalita.Text = AdoRec.Field("Citta")
end Sub
--- Questa è la parte che mi da Errore ---
Sub ModificaDati
AdoRec.FieldSet("Latitudine", txtLatitudine.Text)
AdoRec.FieldSet("Longitudine", txtLongitudine.Text)
AdoRec.Update
end Sub
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?
We use cookies and similar technologies for the following purposes:
Do you accept cookies and these technologies?