[MSSQL & Windows Mobile]

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • vizion88
  • Registratie: Oktober 2008
  • Laatst online: 09-09 11:37

vizion88

Modereer deze reactie

Topicstarter
Dag allen,

Samen met een projectgenoot ben ik bezig met het ontwikkelen van een applicatie voor Windows Mobile. Er is een applicatie die data binnen sleurt en deze in een database zet. Deze database draait op een pc. Vervolgens moet de Windows Mobile application verbinden met die database. Wanneer ik dit probeer in VS2008, geeft hij de melding:

"The new connection uses a data provider that is not supported"

Daarop heb ik geprobeerd om gebruik te maken van een Webservice. Ook dit werkte niet, aangezien er geen webservices konden worden aangesproken in windows mobile. Nu zoek ik dus naar een methode om te kunnen verbinden met een MS SQL 2008 database. Iemand hiervoor een oplossing?

Thnx in advance _/-\o_

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Platforms

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98, Windows CE, Windows Mobile for Smartphone, Windows Mobile for Pocket PC
Zou moeten werken :? Als ik even Google zie ik overigens ook genoeg mogelijke oorzaken.
Toon eens wat relevante code/connectionstrings ?

[ Voor 19% gewijzigd door RobIII op 26-01-2010 13:22 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • vizion88
  • Registratie: Oktober 2008
  • Laatst online: 09-09 11:37

vizion88

Modereer deze reactie

Topicstarter
Wellicht zou ie dit als connectionstring geven, maar daar heb je vermoedelijk niet zoveel aan.

Data Source=LAPTOPBENWIELAN;Initial Catalog=barbapapa;Integrated Security=True;User Instance=False

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
vizion88 schreef op dinsdag 26 januari 2010 @ 13:26:
Wellicht zou ie dit als connectionstring geven
Huh? Gebruik je die connectionstring nou wel of niet? En kun je ook even de relevante code tonen?
Ik doe nooit iets met Windows Mobile dus ik zit er misschien compleet langs, maar weet je ook zeker dat de juiste credentials gebruikt worden etc?

[ Voor 31% gewijzigd door RobIII op 26-01-2010 13:47 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • vizion88
  • Registratie: Oktober 2008
  • Laatst online: 09-09 11:37

vizion88

Modereer deze reactie

Topicstarter
In dit stadium is het nog niet mogelijk om code te tonen. Ik heb een Smart Device project aangemaakt. Vervolgens in VS geprobeerd om een nieuwe datasource toe te voegen. Daar loopt het dus al stuk. Die connectionstring heb ik uit de geavanceerde instellingen geplukt, maar hij is dus niet bruikbaar.

Zijn er meer mensen die hier verstand van hebben(Vast wel O-) )?

Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

vizion88 schreef op dinsdag 26 januari 2010 @ 13:53:
In dit stadium is het nog niet mogelijk om code te tonen. Ik heb een Smart Device project aangemaakt. Vervolgens in VS geprobeerd om een nieuwe datasource toe te voegen. Daar loopt het dus al stuk. Die connectionstring heb ik uit de geavanceerde instellingen geplukt, maar hij is dus niet bruikbaar.

Zijn er meer mensen die hier verstand van hebben(Vast wel O-) )?
Met welke versie van Visual Studio werk je? Ik weet dat Visual Studio 2005 en Visual studio 2008 beta problemen hadden om verbinding te maken met SQL2008.

Vallen de laptop en pc binnen hetzelfde domein? De PC (of SQL2008) moet wel de gebruiker welke via integrated security wordt meegestuurd kennen. Wellicht is het eerst verstandig om gewoon via 'sa' verbinding te maken. In plaats van een hostname zou je ook het IP van de (desktop) machine kunnen toewijzen.

Accepteerd SQL2008 verbindingen van buitenaf (TCPIP staat standaard uit, en named pipes werken alleen binnen dezelfde machine)?

Wat gebeurt er als je gewoon een SqlConnection object in code aangemaakt en daarna de 'Open()' methode aanroept? Welke foutmelding krijg je eventueel dan?

Ofwel geef eens wat meer informatie..

If it isn't broken, fix it until it is..


Acties:
  • 0 Henk 'm!

  • vizion88
  • Registratie: Oktober 2008
  • Laatst online: 09-09 11:37

vizion88

Modereer deze reactie

Topicstarter
Thnx voor de tips. Even mee aan de slag! Je hoort het zsm :)

Acties:
  • 0 Henk 'm!

  • vizion88
  • Registratie: Oktober 2008
  • Laatst online: 09-09 11:37

vizion88

Modereer deze reactie

Topicstarter
Zoals je kon lezen gebruik ik Visual Studio 2008 icm MS SQL Server 2008.

Op dit moment draait de database op dezelfde laptop als waarop ik de applicatie ontwikkel. Een connectie kan nu plotseling wel worden gemaakt, echter komt er op het einde een error in visual studio. Hij kan de dataset niet opmaken en geeft deze melding:

An error occured while generating the data source.

Dit is voor het eerst dat ik op een windows mobile device programmeer, dus een passende reactie lijkt me logisch...

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
vizion88 schreef op dinsdag 26 januari 2010 @ 15:00:
Dit is voor het eerst dat ik op een windows mobile device programmeer, dus een passende reactie lijkt me logisch...
Wat bedoel je daar mee?
Niemand_Anders heeft je denk ik al genoeg pointers gegeven in verschillende richtingen lijkt me.
vizion88 schreef op dinsdag 26 januari 2010 @ 15:00:
Een connectie kan nu plotseling wel worden gemaakt
Wat is er veranderd?
vizion88 schreef op dinsdag 26 januari 2010 @ 15:00:
echter komt er op het einde een error in visual studio.
Op het einde? Als in...?

[ Voor 56% gewijzigd door RobIII op 26-01-2010 15:16 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • Niemand_Anders
  • Registratie: Juli 2006
  • Laatst online: 09-07-2024

Niemand_Anders

Dat was ik niet..

vizion88 schreef op dinsdag 26 januari 2010 @ 15:00:
Zoals je kon lezen gebruik ik Visual Studio 2008 icm MS SQL Server 2008.

Op dit moment draait de database op dezelfde laptop als waarop ik de applicatie ontwikkel. Een connectie kan nu plotseling wel worden gemaakt, echter komt er op het einde een error in visual studio.

Hij kan de dataset niet opmaken en geeft deze melding:
An error occured while generating the data source.
Dit is voor het eerst dat ik op een windows mobile device programmeer, dus een passende reactie lijkt me logisch...
De titel van dit topic is MSSQL en Window Mobile, maar het lijkt erop dat jouw probleem Visual Studio is.

Misschien is het verstandig dat ik je hetzelfde advies geef als elke nieuwe developer/afstudeerder/stagier welke bij ons komt werken: Stop met het gebruik van VS designers en wizards.

Designers geven vaak dezelfde rommel als Frontpage vroeger met HTML deed. En ik begrijp dat het erg verleidelijk is om designers en wizards te gebruiken als je met iets nieuws begint. Het nadeel is dat je niet weet wat er achter de schermen gebeurt, en als het (ineens) niet (meer) werkt ben je al snel de weg kwijt.

Maak eens een nieuw 'Windows Mobile 5.0 SmartPhone (of pocket) Console application' aan met de volgende code

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
using System;
using System.Data;
using System.Data.SqlClient

public namespace DebuggingMssql
{
  public class Program
  {
     public static void Main(string[] args)
     {
        //prepare query
        SqlCommand cmd = new SqlCommand();
        cmd.Connection = new SqlConnection("Server=127.0.0.1; User ID=sa; pwd=bladiebla; Database=appdb;");
        cmd.CommandText = "SELECT * FROM TABLE";
        
        Dataset ds = new DataSet();
        
        //open connection to database, perform query and store results in dataset
        cmd.Connection.Open();
        SqlDataAdapter da = new SqlDataAdapter(cmd);
        da.Fill(ds);
        
        Console.WriteLine("Query returned {0} records\n", ds.Table[0].Rows.Count);
        
        cmd.Connection.Close();
     }
  }
}

Plaats een break point op regel 23 en gebruik de QuickWatch om de inhoud van de dataset te bekijken.

Ik heb juist met opzet geen try/catch blokken gebruikt zodat als je de applicatie start met de debugger je precies kunt zien waar ie fout gaat. Geeft bovenstaande code geen problemen dan kun je de dataset inspecteren.

Had je al gecontrolleerd of je SqlServer TcpIP connecties accepteerd? Dit is erg eenvoudig met telnet te controleren: 'telnet 127.0.0.1 1433'. Geeft telnet na 30 seconden aan dat hij geen verbinding kon maken, dan moet je even de 'SqlM Server Configuration Manager' starten en onder Sql Server Network configuration /Protocols for MSSQLServer controlren of tcp/ip enabled is. Zoals eerder aangegeven staat deze standaard op disabled (veiligheid). Het geeft namelijk de database administrator de kans security goed in te stellen voordat verbindingen van buitenaf worden geaccepteerd. Dubbel click vervolgens op tcp/ip en op het tweede tabblad 'ip addresses' helemaal naar beneden scrollen. Controleer dat de waarde van 'Tcp Dynamic Ports' leeg is (geen 0) en Tcp port op 1433 staat. Vergeet na eventuele aanpassingen de sql server service niet te herstarten.


Als laatste. Mijn eerste reactie is meer dan passend. Je weet alleen te vertellen dat je geen verbinding kunt maken met je database en wij mogen raden waar het probleem zit in de keten tussen windows device en de database. En dat dit je eerste SmartDevice project is heeft daar verder weinig mee doen. Een database probleem is op dat moment niet heel erg veel anders dan in een web of desktop applicatie of zelfs in PHP..

Je kunt een probleem pas oplossen als je een idee hebt op welk punt het fout gaat. Zoals aangegeven, controleer eerst of je vanaf (al) je machine(s) verbinding kunt maken met je database via telnet. Compileer en run dan mijn code voorbeeld.

Wat betreft WCF in .NET compact 3.5. Op codeplex staan twee whitepapers.

Veel succes!

If it isn't broken, fix it until it is..

Pagina: 1