Italian Connessione MySql ... Help

frac3sco

Member
Licensed User
Longtime User
ragazzi c'è qualcosa che non va nel mio b4a

questo è il codice che scrivo passo

'Activity module
Sub Process_Globals


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("db4free.net","3306","UTF-8","dbphp","frac3sc0","123456")
AdoConn.ConnectionTimeout=1
AdoConn.LoginTimeout=1
AdoConn.SocketTimeout=1

AdoConn.InitializeEvent
AdoConn.Open

AdoRec.InitializeEvent
AdoRec.Connection=AdoConn
AdoRec.SqlStatement="SELECT username FROM tblDatiAccesso"
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("username"))
AdoRec.MoveNext
Loop
End If

Msgbox("Record " & AdoRec.MaxRecords,"")

AdoRec.Close
End Sub


come librerie uso adodb v.1.00 e mysql 1.01
nel manifest

AddManifestText(
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)

AddPermission("android.permission.INTERNET")
AddPermission("android.permission.ACCESS_NETWORK_S TATE")

SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.


dove sbaglio.....
 

marco.canta

Active Member
Licensed User
Longtime User
Che errore hai ? Cosa non funzione ? ...

Io l'unica cosa che ho di differente è nel Manifest :

la riga che ho io e è:
<uses-sdk android:minSdkVersion="4"/>
e non
<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/>

non so se possa essere lei i problema.

Fammi sapere

Ciao
Marco
 

marco.canta

Active Member
Licensed User
Longtime User
... io continuo ad avere problemi con l'UPDATE dei Field ... ho provato il suggerimento di Mamo, ma nulla :(

qualche altro suggerimento ?

AdoRec.Close
AdoRec.SqlStatement="INSERT INTO Anagrafica(Longitudine) VALUES ('12345');"
AdoRec.Open

questa è l'ultima prova che ho fatto ma non funziona.

Ho provato anche con

AdoRec.FieldSet("Latitudine", "1234")
AdoRec.Update

ma mi da errore dicendo che non è Updatabile
 

djveleno

Active Member
Licensed User
Longtime User
Così... giusto per l'informazione, ma dove hai trovato la libreria AdoDb?
 

frac3sco

Member
Licensed User
Longtime User
praticamente il mio problema è che non mi fa accedere al db

e come se esiguisse il codice fin qui
AdoRec.SqlStatement="SELECT username FROM tblDatiAccesso"
AdoRec.Open


If AdoRec.isClosed Then
Msgbox("isClose","")
Else
Msgbox("mmmmm","")
End If

restituendomi sempre "mmmmmmm" quin non aprendomi il db.
 

frac3sco

Member
Licensed User
Longtime User
FUNZIONA :)

Sub Process_Globals

End Sub

Sub Globals
Dim AdoConn As AdoConnection
Dim AdoRec As AdoRecordset
Dim listview1 As ListView
End Sub
Sub OpenDB
AdoConn.ConnectionString("db4free.net","3306","UTF-8","dbphp","frac3sc0","123456")
AdoConn.ConnectionTimeout=1
AdoConn.LoginTimeout=1
AdoConn.SocketTimeout=1
AdoConn.InitializeEvent
AdoConn.Open
AdoRec.InitializeEvent
AdoRec.Connection=AdoConn
AdoRec.SqlStatement="select * from tblDatiAccesso"
AdoRec.Open
End Sub
Sub Activity_Create(FirstTime As Boolean)
Activity.LoadLayout("Main")
End Sub
Sub ElencoClienti
If AdoRec.RecordCount>0 Then
listview1.Clear
Do While Not(AdoRec.EOF)
listview1.AddSingleLine (AdoRec.Field("username"))
AdoRec.MoveNext
Loop
End If
End Sub

Sub Button1_Click
OpenDB
ElencoClienti
End Sub


MANIFEST
'This code will be applied to the manifest file during compilation.
'You do not need to modify it in most cases.
'See this link for for more information: http://www.b4x.com/forum/showthread.php?p=78136
AddManifestText(
<uses-sdk android:minSdkVersion="4"/>
<supports-screens android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true"/>)

SetApplicationAttribute(android:icon, "@drawable/icon")
SetApplicationAttribute(android:label, "$LABEL$")
'End of default text.



GRAZIEEEEEEEEEEEEEEEE
 

frac3sco

Member
Licensed User
Longtime User
db kiuso di aruba,il manifest corretto deve contenere alla riga "X" solo <uses-sdk android:minSdkVersion="4"/> e assolutamente no <uses-sdk android:minSdkVersion="4" android:targetSdkVersion="14"/>

in più la verifica

If AdoRec.isClosed Then
Msgbox("isClose","")
Else
Msgbox("mmmmm","")
End If

non va d'accordo con la restituzione dei dati.


il mio prossimo passo sarà avere dei tasti AdoRec.MoveNext e AdoRec.Movepreview in modo da vedere i dati direttamente nei textbox.

hai avuto già modo di giocarci?
 

frac3sco

Member
Licensed User
Longtime User
no ho usato www.db4free.net come consigliato sopra.
aruba è chiuso, ho chiamato all helpdesk per sapere se facevano qualche piano dedicato all'accesso tramite porta 3306 ma mi hanno risposto che non è nella loro politica, in compenso volevano offrirmi un server virtuale a da configurami come volevo per le mie esigenze. naturalmente ho detto no.

siceramente già cerco qualke provider affidabile dove comprare un dominio mysql con porta 3306 aperta. qualkuno parlava di register nel forum chissa quanto viene l'anno. dovrei controllare
 

frac3sco

Member
Licensed User
Longtime User
Queste sono lerighe di comandi che utilizzo io, il modifica dati non funziona pero .... mi da errore come dicevo sopra.

B4X:
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

Ciao Marco

sei riuscito a risolvere?
 

frac3sco

Member
Licensed User
Longtime User
Queste sono lerighe di comandi che utilizzo io, il modifica dati non funziona pero .... mi da errore come dicevo sopra.

B4X:
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

Ciao Marco


questo è il mio esempio che aggiorna il record su db

B4X:
Sub Process_Globals

End Sub

Sub Globals
  Dim AdoConn As AdoConnection
  Dim AdoRec As AdoRecordset
  Dim listview1 As ListView
   
   Dim txt1 As EditText
   Dim txt2 As EditText
   Dim txt3 As EditText
   
   Dim cmdModifica As Button
   Dim cmdConnetti As Button
End Sub
Sub OpenDB
  AdoConn.ConnectionString("db4free.net","3306","UTF-8","dbphp","frac3sc0","123456")
  AdoConn.ConnectionTimeout=1
  AdoConn.LoginTimeout=1
  AdoConn.SocketTimeout=1
  AdoConn.InitializeEvent
  AdoConn.Open
 
  AdoRec.InitializeEvent
  AdoRec.Connection=AdoConn
  AdoRec.SqlStatement="select * from tblDatiAccesso"
  AdoRec.Open
 
End Sub
Sub Activity_Create(FirstTime As Boolean)
  Activity.LoadLayout("main")
End Sub
Sub AssegnaDatiListView

  If AdoRec.RecordCount>0 Then
  listview1.Clear
  Do While Not(AdoRec.EOF)
      listview1.AddSingleLine (AdoRec.Field("username"))

    AdoRec.MoveNext
  Loop
  End If
End Sub



Sub ListView1_ItemClick (Position As Int, Value As Object)
   Dim X As Int
   
   X = Position + 1 'perchè "adorec.moveto" parte a contare da 1 mentre "position" da 0
   'Msgbox (X ,"")
   
   If AdoRec.RecordCount>0 Then
  'Msgbox (AdoRec.RecordCount ,"")
AdoRec.MoveTo(X)
AdoRec.EOF

  txt1.Text = AdoRec.Field("username")
  txt2.Text = AdoRec.Field("password")
  txt3.Text = AdoRec.Field("email")
 
   
End If
'@@@@@@@@@@@@@@@@
'nb adorec ha lo stato sempre attivo l'if a seguire serve solo in fase di debug per rendercene conto
 If AdoRec.isClosed Then Msgbox("ChiusO","") Else Msgbox ("AOerto", "")
End Sub

Sub cmdModifica_Click
'####################
  AdoConn.Execute ("Update tblDatiAccesso set password='" & txt2.text & "' where username='" & txt1.text & "'")
'#####################

 AdoRec.Close
 AdoRec.InitializeEvent
 AdoRec.Connection=AdoConn
 AdoRec.SqlStatement="select * from tblDatiAccesso"
 AdoRec.Open
End Sub
Sub cmdConnetti_Click
OpenDB
AssegnaDatiListView
End Sub
 

frac3sco

Member
Licensed User
Longtime User
figurati..... :)

è tutto il pomeriggio che cerco di fare un insert into ma non ci riesco............
sto letteralmente sclerando, credo di aver letto di tutto ma nulla.

HElP ME :)
 

marco.canta

Active Member
Licensed User
Longtime User
Grazie al suggerimento di frac3sco il UPDATE ora funziona anche me :)

ora faccio un po di prove anche io per INSERT INTO ....

Ciao
Marco
 

coslad

Well-Known Member
Licensed User
Longtime User
Ciao a tutti ,
sto seguendo con interesse questa discussione perché mi sta aiutando a risolvere alcuni dubbi che ho sulla connessione Mysql .
Uno degli ostacoli che mi impediva di imparare era che ritenevo necessario l'utilizzo del php ( a meno di avere un pc a casa con mysql server ) , invece mi sembra di capire che attraverso server gratuiti come dbfree o a basso costo come register.it ci si puo' connettere direttamente al database.
Bel lavoro grazie .
 
Top