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 SubCodice 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> 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		