Dase de dados para windows CE | ZWAME Fórum
Dase de dados para windows CE
Discussão em 'Programação' iniciada por cook, 28 de Janeiro de 2009. (Respostas: 19; Visualizações: 1152)
preciso criar uma aplicação para correr num pda com o windows ce 5.0. Essa aplicação vai trabalhar com acessos a base dados e a aplicação vai ser utilizada "Off-Line" ou seja a base de dados vai ter que estar a correr no pda...
a minha pergunta é se conhecem motores de base de dados para windows ce 5.0. onde posso procurar? e quais os mais leves e fiaveis...
Penso que não tens grande escolha sem ser o SQL Server CE.
SQLite, também.
Já ouvi boas opiniões sobre esse
pois eu acabei de instalar agr o sql server compact edition mas aquilo instala la as dlls e dps nao aparece nenhuma forma de criar lá uma base de dados. ou seja como depois isso vai funcionar? como adiciono base de dados? é preciso por sempre o serviço a correr para depois poder aceder? o que meto na connection string?
agradecia ajudas... obrigado
Se queres uma base de dados para o PDA, podes cria-la directamente pelo Visual Studio sem recorrer ao Sql Server.
sim, mas o objectivo deste projecto é ter uma base de dados no pda... e depois varias aplicações no pda acederem a essa base de dados... ou seja por isso é que queria o genero de um motor de base de dados no pda... para ter o serviço a correr e dps as aplicações acediam lá.... como numa maquina normal... eu já instalei o ficheiros (sqlce30.dev.ENU.wce5.armv4i.CAB, sqlce30.repl.wce5.armv4i.CAB, sqlce30.wce5.armv4i.CAB) agora não sei como giro as base de dados como se gere num pc normal com o Sql Server Management Studio... penso que me fiz entender... posso ter sido um pouco confuso...
Tens o SQL Query Analyzer que é bastante bom, e penso que vem com o pacote dev que instalaste. Podes criar lá a base de dados ou, alternativamente, através do código.
ok obrigado... ja acedi e ja criei la uma base de dados e uma tabela... obrigado
agora a minha questão é outra... como sei a instancia? por exemplo na querystring de uma aplicação para pc normal costuma ser o nome da maquina... aqui como é construida a querystring?
o query analyzer é preciso estar a correr para aplicação la conseguir aceder? porque aquilo tem la um botaozinho de correr.... é preciso fazer sempre isso ou nao e preciso tal e qual como num pc normal que esta sempre o serviço a correr em background?
Suponho que te estejas a referir à connection string. Não precisas de ter o Query Analyzer a correr; esta é apenas uma ferramenta semelhante (mas mais limitada, claro está) ao SQL Server Management Studio, mas versão mobile. Quando crias uma base de dados, é criado um ficheiro com a extensão .sdf (SQL Server Compact CE Database File), sendo que a tua connection string deve indicar onde este se encontra. Algo do género:
Data Source="\\Program Files\\Aplicação\\database.sdf"
Eventualmente, irás precisar de colocar o Provider, ou outros parâmetros.
sim estás a ajudar muito obrigado... ou seja no visual studio na aplicação que estou a fazer faço tal e qual como se fosse para uma base de dados normal.. mas depois na aplicação a querystring é que usa essa em vez da outra correcto?
já agora aquilo tem uma password, a query string completa como ficaria? tem password mas nao tem user...
desculpa lá tar a chatear mas preciso mesmo e é a primeira vez que tou a trabalhar com isto...
tive a testar e nao consegui obter acesso a base de dados.
o erro que me dá é este: Specified SQL server not found: \\BDTeste\\bdteste.sdf
a minha connection string é a seguinte...
conStr = "Password=testepass;Persist Security Info=True;Initial Catalog=" & nomeBaseDados & ";Data Source=" & servidorBaseDados & ""
em que o nome da base de dados passo bdteste.sdf e o servidorBaseDados passo \\BDTeste\\bdteste.sdf
o posso tar a fazer mal? a pass ponho testepass
As classes que tens que utilizar também são diferentes, mas no geral sim, a ideia é a mesma. Em relação à password, penso que é algo do género:
"Data Source=...; Password=..."
as classes como assim? quais? do sql connection e isso?
Sim. No caso do SQL Server CE, deves utilizar a classe SqlCeConnection, por exemplo.
eu tou a usar tudo normal e ele nao me da erro na ligação nem nada.... ate tenho uma funcao que é getDataSet e ele passa essa funcao sem probs... depois quando uso esta linha para usar o dataset é que rebenta e diz NullReferenceException
ds = lig.getDataSet("\\BDTeste\\bdteste.sdf", "bdteste", "select nome from pessoa")
MsgBox("passei a ligacao: ")
TextBox1.Text = ds.Tables(0).Rows(0).Item("nome")
Se for possível, coloca o resto do código para poder verificar o que estás a fazer.
aqui tão os tres metodos que tenho na classe ligacao ou seja tenho o ligar, desligar e o getdataset
Public Sub ligar(ByVal servidorBaseDados As String, ByVal nomeBaseDados As String)
Dim conectar As Boolean = False
ElseIf Not (cn.State = ConnectionState.Connecting) Then
If conectar Then
Public Sub desligar()
Public Function getDataSet(ByVal servidorBaseDados As String, ByVal nomeBaseDados As String, ByVal sql As String) As DataSet
Dim dr As SqlDataAdapter
ligar(servidorBaseDados, nomeBaseDados)
dr = New SqlDataAdapter(cm)
depois no form no click do botao tenho isto
Dim lig As ligacao
lig = New ligacao
ele chega a mandar essa MsgBox mas dps rebenta quando usa o dataSet para por na textbox
Precisas de utilizar as classes específicas do SQL Server CE. Vê se isto e isto ajuda. O facto de ele mostrar a mensagem, não quer dizer que a ligação tenha sido bem sucedida. Verifica o valor da variável.