SQL DELETE ze dvou tabulek ve VB.NET   otázka

VB.NET, SQL, Databáze

Prosím poraďte, už se s tím mořím druhý den.

Mám databázi access o dvou tabulkách, přičemž tabulky mají různý počet záznamů i různá pole. Jediné společné pole pro obě tabulky je "Jmeno".

Jak mám prosím udělat, abych smazal záznamy v obou tabulkách kde Jmeno="nějaký text", přičemž ve druhé tabulce záznam Jmeno="nějaký text" nemusí vždy existovat.

Mám to takto, ale hlásí mi to chybu na druhém příkaze mycmd.ExecuteNonQuery(), přičemž první se bez problémů provede:

Dim comazeme As String = TextBox1.Text 'to je ten nějaký text

            sql = "DELETE * FROM vzorky_popis WHERE ID=" & Val(txtID.Text)
            mycmd = New OleDb.OleDbCommand
            If Not CN.State = ConnectionState.Open Then
                CN.Open()
            End If
            mycmd.Connection = CN
            mycmd.CommandText = sql
            mycmd.ExecuteNonQuery()

            'smazeme i druhou tabulku
            sql = "DELETE * FROM vzorky_vlastnosti WHERE Jmeno='" & comazeme & "'"
            mycmd.CommandText = sql
            mycmd.ExecuteNonQuery()

Předpokládám, že se to udělat mnohem elegantněji...

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

Tohle mi funguje,a le nešlo by to v jednom příkazu SQL...?

sql = "DELETE * FROM vzorky_popis WHERE ID=" & Val(txtID.Text)
            mycmd = New OleDb.OleDbCommand
            If Not CN.State = ConnectionState.Open Then
                CN.Open()
            End If
            mycmd.Connection = CN
            mycmd.CommandText = sql
            mycmd.ExecuteNonQuery()
            'smazeme i druhou tabulku
            Call Napln_RTF_a_data()
            sql = "DELETE * FROM vzorky_vlastnosti WHERE ID=" & Val(Form4.ID.Text)
            mycmd = New OleDb.OleDbCommand
            If Not CN.State = ConnectionState.Open Then
                CN.Open()
            End If
            mycmd.Connection = CN
            mycmd.CommandText = sql
            mycmd.ExecuteNonQuery()

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

tohle nefunguje?

sql = "DELETE * FROM vzorky_popis WHERE ID=" & Val(txtID.Text) & "; DELETE * FROM vzorky_vlastnosti WHERE ID=" & Val(Form4.ID.Text)"

a nebo

sql = "DELETE vzorky_popis , vzorky_vlastnosti FROM vzorky_popis LEFT JOIN vzorky_vlastnosti

WHERE vzorky_popis.ID= vzorky_vlastnosti.ID and vzorky_popis.ID =" & Val(Form4.ID.Text)

pripadne Foreign Key

http://dev.mysql.com/doc/refman/5.1/en/i...

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

Ani jedno z toho nefunguje...zkoušel jsem i obvyklé syntaxe (apostrofy, čárky, středníky, atd.) buď to hlásilo špatná syntaxe nebo chybí příkazy na konci řádku...

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