zápis do DBF ???   otázka

VB.NET, ADO.NET, Databáze

dobrý den,

mám dotaz na který jsem bohužel nikde nenašel odpověď a nebo aspoň ne adekvátní tomu co hledám. Můj problém spočívá v zápisu do DBF souboru.

načtení se mi celkem daří, ale pokud do něj chci zapsat, netuším kde "zavolám" nějaký SQL dotaz který by jej provedl.

otevření řeším takto :

(někde jsem to tady našel a funguje to výborně)

            Dim con As New OleDb.OleDbConnection()
            Dim cmd As New OleDb.OleDbCommand("SELECT * FROM " & oDBF)
            Dim da As New OleDb.OleDbDataAdapter(cmd)

            con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" _
                                 & "Data Source=" & dDBF & ";" _
                                 & "Extended Properties=DBASE III;"
            con.Open()
            cmd.Connection = con
            con.Close()

Ale jak udělám třeba INSERT INTO a podobně ??

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Z vlastních zkušeností vím, že zapisovat do něčeho tak pravěkého jako je databáze DBF vyžaduje mít nainstalováno BDE (Borland Database Engine). Pro čtení to není nutné, pro zápis ano. A to ani nezmiňuji nekompatibilitu BDE s 64bitovými systémy a čímkoliv novějším než Windows XP.

Co se týče SQL dotazů pro vkládání dat, to jsou naprosté základy, které musíte znát při jakékoliv práci s databází, takže se je naučte.

ADO.NET je uděláno tak, že se se všemi databázemi pracuje stejně a drobně odlišné jsou jen některé SQL příkazy.

nahlásit spamnahlásit spam 0 odpovědětodpovědět

SQL dotaz problém není, nevím ale jak jej mám provést na té databázi ? Potřebuju do existující DBF databáze přidat řádky, dotaz by byl ale co s ním ? :)

nahlásit spamnahlásit spam 0 odpovědětodpovědět

V závislosti na tom, jaký způsob připojení používáte, použijte příslušné objekty. Pro OLE DB jsou to věci s názvem OleDb, pro ODBC věci s názvem Odbc.

Using connection As New OleDbConnection("connectionString")
  Using command As New OleDbCommand("SQL příkaz pro vložení dat", connection)
    'command.Parameters...
    Dim rowsAffected = command.ExecuteNonQuery()
  End Using
End Using

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Tu je to dosť podrobne rozpísané:

http://www.dreamincode.net/forums/topic/...

http://www.startvbdotnet.com/ado/msacces...

http://forums.devx.com/showthread.php?t=...

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Dotazy sem vyřešil, spíš mi teďak vrtá hlavou jiná věc.. pokud ji chci otevřít neexklusivně tak mi vvyhodí program chybu

Nelze najít instalovatelnou metodu ISAM ?

Je problém v tom že ten connection string je blbě nebo mi opravdu něco chybí ??

Dim dDBF As String = "D:\"
            cn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" _
                                 & "Data Source=" & dDBF & ";" _
                                 & "exclusive=no;" _
                                 & "Extended Properties=DBASE III;")
            cn.Open()
            str = "insert into database.dbf (COBJ) values(1)"
            cmd = New OleDbCommand(str, cn)

díyk za odpověď

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Nainstaloval jste BDE jak jsem zmiňoval dříve?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

můžete použít vfpoledb viz např.

http://kb.softescu.ro/programming/vbnet/...

ZK

nahlásit spamnahlásit spam -1 / 1 odpovědětodpovědět

Ne nemůže použít vfpoledb, protože to je OLE DB ovladač z FoxPro, které musí být nainstalováno na cílovém počítači (nebo alespoň jeho součást).

nahlásit spamnahlásit spam 0 odpovědětodpovědět

stačí mít nainstalován driver vfpoledb. Tj je to stejné jako u BDE.

http://www.microsoft.com/downloads/en/de...

ZK

nahlásit spamnahlásit spam 0 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback