Anwylyd
Messages postés3Date d'inscriptionjeudi 1 octobre 2009StatutMembreDernière intervention 3 mai 2012
-
2 mai 2012 à 10:55
Anwylyd
Messages postés3Date d'inscriptionjeudi 1 octobre 2009StatutMembreDernière intervention 3 mai 2012
-
3 mai 2012 à 08:14
Bonjour.
D'abord n'étant ps très habituée à poster, je ne saurais être sûre d'avoir posté mon message où il faut, je demande donc votre indulgence et si possible de m'indiquer où je devrais poster si je me suis effectivement trompée.
J'ai besoin de vos lumières sur un problème qui me gêne bcp. Pt-être ai-je mal cherché, toujours est-il que je ne trouve pas de solution.
Je travaille actuellement sur un projet Androïd sous la plateforme Basic4Android.
Le but est de se connecter à une base de données Sql Server distante depuis le programme android en utilisant un webservice.
1- D'abord ds le cas d'une exécution avec une bd du serveur local, on a un lien ds le genre:
Lorsqu'on veut exécuter avec une bd du serveur distant, je suis obligée de passer par la commande de visual studio "Afficher ds le navigateur" et le lien obtenu est du genre:
Sans le :59568 le résultat de la requête n'est pas affiché et une erreur est envoyée coe quoiles informations de connexion sont erronées.
Ma question ici est de savoir s'il y a quelque chose à faire pour optimiser le code. J'ai modifié le code proposé ici.
2- Ds le code androïd il est question d'afficher le résultat en utilisant le format JSON. et ds le code proposé tjrs ici on utilise le JSONParser.
Le problème ici c'est que la compilation échoue en envoyant l'erreur suivante :
Error parsing program.
Error description: Unknown type: jsonparser
Are you missing a library reference?
Occurred on line: 34
Dim parser As JSONParser
Soit que la librairie JSON manque si j'ai bien cerné l'erreur. Maintenant mon problème est que j'ignore comment intégrer cette librairie au projet android.
Sub Activity_Create(FirstTime As Boolean)
If FirstTime Then
HttpUtils.CallbackActivity = "Main"
HttpUtils.CallbackJobDoneSub = "JobDone"
End If
HttpUtils.PostString("Job1", ServerUrl, "SELECT NomPrenom, Telephone FROM dbo.CLIENT")
End Sub
Sub Activity_Resume
If HttpUtils.Complete = True Then JobDone(HttpUtils.Job)
End Sub
Sub Activity_Pause (UserClosed As Boolean)
End Sub
Sub JobDone (Job As String)
If HttpUtils.IsSuccess(ServerUrl) Then
Dim parser As JSONParser
Dim response As String
response = HttpUtils.GetString(ServerUrl)
parser.Initialize(response)
Dim rows As List
rows = parser.NextArray
'work with result
'rows is a List. Each item is a Map with the columns names as keys and the db values as the values.
For i = 0 To rows.Size - 1
Log("Rows #" & i)
Dim m As Map
m = rows.Get(i)
Log("NomPrenom=" & m.Get("NomPrenom")) 'log the values of col1 and col2
Log("Telephone=" & m.Get("Telephone"))
Next
End If
HttpUtils.Complete = False
End Sub
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<script runat="server">
protected void Page_Load(object sender, EventArgs ec)
{
using (SqlConnection cn = new SqlConnection("Server=BASIA-DC01;Database=RESTOBAR_MANAGER;User Id=BASIA2;Password=BASIA2")) //change as needed
//Provider=SQLOLEDB.1;Password=BASIA2;Persist Security Info=True;User ID=BASIA2;Initial Catalog=RESTOBAR_MANAGER;Data Source=BASIA-DC01
{
using (StreamReader sr = new StreamReader(Request.InputStream, Encoding.UTF8))
{
Response.ContentType = "text/plain";
string c;
c = Request.QueryString["query"]; //for debugging with the browser
//you can set the query by adding the query parameter For ex: http://127.0.0.1/test.aspx?query=select * from table1
if (c == null)
c = sr.ReadToEnd();
try
{
SqlCommand cmd = new SqlCommand(c, cn);
cn.Open();
SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection);
List<Dictionary<string, object>> list = new List<Dictionary<string, object>>();
while (rdr.Read())
{
Dictionary<string, object> d = new Dictionary<string, object>(rdr.FieldCount);
for (int i =0;i < rdr.FieldCount;i++)
{
d[rdr.GetName(i)] = rdr.GetValue(i);
}
list.Add(d);
}
JavaScriptSerializer j = new JavaScriptSerializer();
Response.Write(j.Serialize(list.ToArray()));
Anwylyd
Messages postés3Date d'inscriptionjeudi 1 octobre 2009StatutMembreDernière intervention 3 mai 2012 3 mai 2012 à 08:14
c'est évident que quelqu'un va avoir envie d'essayer. Je teste juste si le Web Service marche en faisant de la sorte.
Hier j'ai trouvé plusieurs dll JSON. L'ennui c'est que je me demande laquelle est la bonne. Ms à travers ls pages rencontrées, j'ai cru voir un peu plus d'utilisateurs du JSON de Newton Soft.
Toutefois mon problème reste entier. Je ne sais toujours pas comment appeler la dll ds le code androïd pour pouvoir l'utiliser. Pourriez vous m'éclairer s'il vous plaît ?