Avatar billede sbkrem Nybegynder
25. juli 2004 - 06:10 Der er 16 kommentarer og
1 løsning

Distribution og database

Jeg har lavet en setup-fil og inkluderet den database, som hører til projektet. Alt virker også fint på den nyr PC programmet bliver installeret på. Dog fremkommer en fejl, når min applikation skal bruge databasen, da den stadig bruger den gamle sti til databasen.

F.eks.
C:\Documents and Settings\Administrator\Dokumenter\Visual Studio Projects\myProgram\myDatabase.mdb

Har desværre ikke flere points, men hvis det er nødvendigt må jeg lige så tjent nogle flere :)
Avatar billede arne_v Ekspert
25. juli 2004 - 09:50 #1
Det nemmeste er vel hvis du retter connection string således at programmer
leder efter MDB filen i samme directory som sig selv.
Avatar billede jesperskov2 Nybegynder
25. juli 2004 - 18:33 #2
Hej, arne_v hvad er din e-mail adresse??
Avatar billede arne_v Ekspert
25. juli 2004 - 18:35 #3
Hvorfor ?

(arne_v@mail.danbbs.dk)
Avatar billede sbkrem Nybegynder
25. juli 2004 - 18:44 #4
Jeg har forsøgt at ændre den manuelt i koden, så der kun står:

""myDatabase.mdb""

Men det virker ikke - findes der en speciel måde at gøre det på?
Avatar billede arne_v Ekspert
25. juli 2004 - 18:46 #5
Det betyder at den leder efter MDB'en i current directory, hvilket ikke
nødvendigvis er det samme som directort med EXE i !
Avatar billede arne_v Ekspert
25. juli 2004 - 18:52 #6
Prøv evt.

Path.GetDirectoryName(Environment.GetCommandLineArgs()(0) & "\" & "myDatabase.mdb"
Avatar billede sbkrem Nybegynder
25. juli 2004 - 18:59 #7
Skal det indsættes direkte i min connection string - eller hvordan?

        Me.OleDbConnection1.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
        "ocking Mode=1;Data Source=""C:\Documents and Settings\Administrator\Dokumenter\Vi" & _
        "sual Studio Projects\myProgram\myDatabase.mdb"";Mode=Share Deny None;Jet OLEDB:Engine Typ" & _
        "e=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=" & _
        "False;persist security info=False;Extended Properties=;Jet OLEDB:Compact Without" & _
        " Replica Repair=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System D" & _
        "atabase=False;Jet OLEDB:Don't Copy Locale on Compact=False;User ID=Admin;Jet OLE" & _
        "DB:Global Bulk Transactions=1"
Avatar billede arne_v Ekspert
25. juli 2004 - 19:02 #8
Føj for en wizard genereret connection string !

Ja.

Me.OleDbConnection1.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
        "ocking Mode=1;Data Source=""" & Path.GetDirectoryName(Environment.GetCommandLineArgs()(0) & "\myDatabase.mdb"";Mode=Share Deny None;Jet OLEDB:Engine Typ" & _
        "e=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=" & _
        "False;persist security info=False;Extended Properties=;Jet OLEDB:Compact Without" & _
        " Replica Repair=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System D" & _
        "atabase=False;Jet OLEDB:Don't Copy Locale on Compact=False;User ID=Admin;Jet OLE" & _
        "DB:Global Bulk Transactions=1"
Avatar billede sbkrem Nybegynder
25. juli 2004 - 19:15 #9
Den fortæller at 'Path' ikke deklareret og der mangler en ')'

Vil lige se om jeg kan finde nogle flere points til dig :-)
Avatar billede arne_v Ekspert
25. juli 2004 - 19:29 #10
Path kræver at du importerer System.IO
Avatar billede arne_v Ekspert
25. juli 2004 - 19:29 #11
Me.OleDbConnection1.ConnectionString = "Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Registry Path=;Jet OLEDB:Database L" & _
        "ocking Mode=1;Data Source=""" & Path.GetDirectoryName(Environment.GetCommandLineArgs()(0)) & _
        "\myDatabase.mdb"";Mode=Share Deny None;Jet OLEDB:Engine Typ" & _
        "e=5;Provider=""Microsoft.Jet.OLEDB.4.0"";Jet OLEDB:System database=;Jet OLEDB:SFP=" & _
        "False;persist security info=False;Extended Properties=;Jet OLEDB:Compact Without" & _
        " Replica Repair=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Create System D" & _
        "atabase=False;Jet OLEDB:Don't Copy Locale on Compact=False;User ID=Admin;Jet OLE" & _
        "DB:Global Bulk Transactions=1"
Avatar billede sbkrem Nybegynder
25. juli 2004 - 20:58 #12
Dog ser det ud til at virke, bortset fra at CurrentDir er i undermappen bin.
Jeg går ud fra dette ændre sig når programmet installeres på en anden computer.

Jeg får dog denne fejl, som umiddelbart ikke forhindre programmet i at køre:
'Method System.String.GetCommandLineArgs not found.'
Avatar billede arne_v Ekspert
25. juli 2004 - 21:01 #13
Øh - har du en variabel af typen String ved navn Environment ?
Avatar billede sbkrem Nybegynder
25. juli 2004 - 21:02 #14
Nej, det sker bare så snart jeg øverst i min form har skrevet 'Imports System.IO' og udskiftet min kode med din.
Avatar billede arne_v Ekspert
25. juli 2004 - 21:27 #15
Mystisk.

Men det virker ?
Avatar billede arne_v Ekspert
25. juli 2004 - 21:27 #16
Jeg ligger et svar såfremt ...
Avatar billede sbkrem Nybegynder
26. juli 2004 - 22:33 #17
Du skal da i hvert fald have points. Jeg må lige rive fat i dig når jeg får fat på nogle flere.

Ang. fejlen "Method System.String.GetCommandLineArgs not found.", så optræder den alle steder hvor jeg bruger 'Imports System.IO'. Men det må jeg lige få set på.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester