Salve un saluto a tutto il forum Italiano…
Sono un appassionato di Visual Basic 6 da tantissimi anni…..
e sto cercando di imparare anche questo nuovo Basic4Android …sarà per la parola Basic che ritorna…
Volevo fare un piccola guida sulla Connessione al Database Microsoft Access in locale e in remoto, che spero possa essere utile a tanti che iniziano a lavorare con Basic4Android.
Ovviamente per molti di voi che conoscete bene il B4a, tutto questo forse sarà inutile e sicuramente perfezionabile, ma volevo comunque riunire un po’ tutto quello che ho provato e testato.
In questa mia APP ho eseguito la connessione al DB MS Access sia in Locale che in Remoto.
Per fare questo ho creato prima il DB Clienti.mdb con la seguente tabella: Anagrafica
con Cliente e Citta
e poi per eseguire la connessione al DB ho creato il file: QueryMSaccess.asp
che serve per interrogare il DB e restituire alla mia APP B4a un file stringa Json da leggere e formattare in una listview o altro…
Nel server sia in Locale che in Remoto in una directory predefinita quindi ci saranno i seguenti file:
Clienti.mdb in una directory
E tutti questi file nello stesso percorso
QueryMSaccess.asp
JSON.asp
JSON_UTIL.asp
Codice B4a
Codice ASP
Sono un appassionato di Visual Basic 6 da tantissimi anni…..
e sto cercando di imparare anche questo nuovo Basic4Android …sarà per la parola Basic che ritorna…
Volevo fare un piccola guida sulla Connessione al Database Microsoft Access in locale e in remoto, che spero possa essere utile a tanti che iniziano a lavorare con Basic4Android.
Ovviamente per molti di voi che conoscete bene il B4a, tutto questo forse sarà inutile e sicuramente perfezionabile, ma volevo comunque riunire un po’ tutto quello che ho provato e testato.
In questa mia APP ho eseguito la connessione al DB MS Access sia in Locale che in Remoto.
Per fare questo ho creato prima il DB Clienti.mdb con la seguente tabella: Anagrafica
con Cliente e Citta
e poi per eseguire la connessione al DB ho creato il file: QueryMSaccess.asp
che serve per interrogare il DB e restituire alla mia APP B4a un file stringa Json da leggere e formattare in una listview o altro…
Nel server sia in Locale che in Remoto in una directory predefinita quindi ci saranno i seguenti file:
Clienti.mdb in una directory
E tutti questi file nello stesso percorso
QueryMSaccess.asp
JSON.asp
JSON_UTIL.asp
Codice B4a
B4X:
Sub Process_Globals
Dim hc As HttpClient
End Sub
Sub Globals
Dim Button1 As Button
Dim Button2 As Button
Dim Button3 As Button
Dim ET1 As EditText
Dim ListView1 As ListView
Dim Button4 As Button
Dim ET2 As EditText
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("frm1")
hc.Initialize("hc")
Dim req As HttpRequest
Dim web As String
Dim query As String
‘ seleziona la query nel file .ASP
query=1
' prova connessione in locale (inserire indirizzo IP del PC in locale)
web="http://192.168.1.6/b4a/QueryMSAccess.asp?QRY=" & query
' prova connessione in remoto
' web="http://www.nomedominio.it/QueryMSAccess.asp?QRY=" & query
req.InitializePost2(web, query.GetBytes("UTF8"))
hc.Execute(req, 1)
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
Dim m As Map
Dim t1,t2 As String
countries = parser.NextArray 'returns a list with maps
ListView1.Clear
For i = 0 To countries.Size - 1
m = countries.Get(i)
t1 = m.Get("Cliente")
t2 = m.Get("Citta")
ListView1.AddTwoLines (t1, t2)
Next
Response.Release
End If
End Sub
Sub Button1_Click
hc.Initialize("hc")
Dim req As HttpRequest
Dim web As String
Dim query As String
‘ seleziona la query nel file .ASP
query=2
' prova connessione in locale (inserire indirizzo IP del PC in locale)
web="http://192.168.1.6/b4a/QueryMSAccess.asp?QRY=" & query & "&PAR=verdi"
' prova connessione in remoto
' web="http://www. nomedominio.it/QueryMSAccess.asp?QRY=" & query & "&PAR=verdi"
req.InitializePost2(web, query.GetBytes("UTF8"))
hc.Execute(req, 1)
End Sub
Sub Button2_Click
If ET1.Text<>"" Then
hc.Initialize("hc")
Dim req As HttpRequest
Dim web As String
Dim query As String
‘ seleziona la query nel file .ASP
query=2
' prova connessione in locale (inserire indirizzo IP del PC in locale)
web="http://192.168.1.6/b4a/QueryMSAccess.asp?QRY=" & query & "&PAR=" & ET1.Text.Replace("'","''")
' prova connessione in remoto
' web="http://www. nomedominio.it/QueryMSAccess.asp?QRY=" & query & "&PAR=" & ET1.Text.Replace("'","''")
req.InitializePost2(web, query.GetBytes("UTF8"))
hc.Execute(req, 1)
End If
End Sub
Sub Button3_Click
hc.Initialize("hc")
Dim req As HttpRequest
Dim web As String
Dim query As String
‘ seleziona la query nel file .ASP
query=1
' prova connessione in locale (inserire indirizzo IP del PC in locale)
web="http://192.168.1.6/b4a/QueryMSAccess.asp?QRY=" & query
' prova connessione in remoto
' web="http://www. nomedominio.it/QueryMSAccess.asp?QRY=" & query
req.InitializePost2(web, query.GetBytes("UTF8"))
hc.Execute(req, 1)
End Sub
Sub Button4_Click
If ET2.text<>"" Then
hc.Initialize("hc")
Dim req As HttpRequest
Dim web As String
Dim query As String
‘ seleziona la query nel file .ASP
query=3
' prova connessione in locale (inserire indirizzo IP del PC in locale)
web="http://192.168.1.6/b4a/QueryMSAccess.asp?QRY=" & query & "&PAR=" & ET2.Text.Replace("'","''")
' prova connessione in remoto
' web="http://www. nomedominio.it/QueryMSAccess.asp?QRY=" & query & "&PAR=" & ET2.Text.Replace("'","''")
req.InitializePost2(web, query.GetBytes("UTF8"))
hc.Execute(req, 1)
End If
End Sub
Codice ASP
B4X:
<!--#include file="JSON.asp"-->
<!--#include file="JSON_UTIL.asp"-->
<script language="vbscript" runat="server">
On Error Resume Next
' Constants
const adOpenForwardOnly = 0 ' Forward only movement through records
const adOpenKeyset = 1 ' Movement any direction
const adOpenDynamic = 2
const adOpenStatic = 3
const adLockOptimistic = 3
Dim dbPathAndFilename
Dim ConnectionString
Dim rs
Dim QRY
Dim PAR
Dim UID
Dim PSW
Dim dbFile
Dim strsql
' ////////////////////////////////////////////////////////////
' Main
' ////////////////////////////////////////////////////////////
' Initialise
OpenDatabase = False
‘ nome del Database
dbFile = "Clienti.mdb"
' scelta numero query
QRY= Request("QRY")
' scelta parametro query
PAR= Request("PAR")
' username DB
' UID= Request("UID")
' passowrd DB
' PSW= Request("PSW")
' questo è il percorso del file del Database in locale
‘ va poi cambiato quando si pubblica sul server
dbPathAndFilename = "C:\www\Clienti.mdb"
Set Connection = Server.CreateObject("ADODB.Connection")
Connection.ConnectionTimeout = 30
Connection.CommandTimeout = 80
ConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};" &_
"DBQ=" & dbPathAndFilename & ";DefaultDir=;" ' &_
' "UID=" & Username & ";" &_
' "PWD=" & Password & ";"
Connection.Open ConnectionString
OpenDatabase = True
select case QRY
case 1
strsql = "SELECT * FROM anagrafica"
case 2
strsql = "SELECT * FROM anagrafica WHERE cliente ='" & PAR & "'"
case 3
strsql = "SELECT * FROM anagrafica WHERE citta ='" & PAR & "'"
' case etc.......... si possono aggiungere altre query
end select
set rs = Server.CreateObject("ADODB.RecordSet")
rs.Open strsql , Connection, adOpenForwardOnly, adLockOptimistic
QueryToJSON(Connection, strsql).Flush
rs.Close
set rs = nothing
Connection.Close
set Connection = nothing
CheckError
' ////////////////////////////////////////////////////////////
Function CheckError()
' ////////////////////////////////////////////////////////////
' CheckError: Checks for, and reports Errors.
' Returns True if an error has occured, False otherwise
if Err.number <> 0 then
Response.Write "A run-time error occurred.<BR>Error Number: " &_
Err.number & "Error Description: " & Err.description
CheckError = True
Else
CheckError = False
End If
end Function
</script>