.NET > Obecné
try - catch
erdt.martin:
Ahoj,
potrebuji v db vytvorit tabulky, prikaz IF NOT EXIST mi nefunguje a tak jsem to vyresil na tvrdo takto:
--- Kód: C++ ---if (chbNastaveniVytvoritSluopce.Checked) { // pokusím se je vytvořit, pokud to skončí s vyjímkou, tak existují try { VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "GPSx"); } catch { } try { VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "GPSy"); } catch { } try { VytvorSloupce.VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, "Accuracy"); } catch { } }
bohuzel je to prasarna, vim... Ale lepsi reseni mne nenapadlo... Muzete mi poradit? Aby to nebyla takovato prasarna?
KarelHorky:
Nepíšeš, pro jakou databázi to je. Ale asi ve všech se dá nějak zjistit, jestli existuje sloupec v některé tabulce. Já používám FIREBIRD a zjišťuji to takto:
--- Kód: ---select rdb$field_name from rdb$relation_fields where
(rdb$relation_name = ''TABULKA'') and (rdb$field_name = ''SLOUPEC'')
--- Konec kódu ---
Když se vrátí řádek, existuje, když nevrátí nic, neexistuje.
Pohledej na Googlu, určitě něco najdeš.
qwertr:
Napriklad pre oracle 0 - stlpec neexistuje 1 - stlpec existuje
--- Kód: ---SELECT COUNT(*) FROM ALL_TAB_COLUMNS
WHERE Upper(OWNER) = Upper('<OWNER>')
AND Upper(TABLE_NAME) = Upper('<TABLE_NAME>')
AND Upper(COLUMN_NAME) = Upper('<COLUMN_NAME>')
--- Konec kódu ---
TC:
--- Kód: C++ --- void Erdt() { if (true)//chbNastaveniVytvoritSluopce.Checked) { // pokusím se je vytvořit, pokud to skončí s vyjímkou, tak existují string sJmenoDB = "", sDataSource = "", sUzivatel = "", sHeslo = ""; foreach (var col in new string[] { "GPSx", "GPSy", "Accuracy" }) TryColumn(sJmenoDB, sDataSource, sUzivatel, sHeslo, col); } } public void TryColumn(string sJmenoDB, string sDataSource, string sUzivatel, string sHeslo, string column) { try { VytvorSloupeckyDoDB(sJmenoDB, sDataSource, sUzivatel, sHeslo, column); } catch { } } public void VytvorSloupeckyDoDB(string sJmenoDB, string sDataSource, string sUzivatel, string sHeslo, string column) { } }
Zdravim
TC
Mi.Chal.:
--- Citace: erdt.martin 25-07-2012, 14:41:28 ---Ahoj,
potrebuji v db vytvorit tabulky, prikaz IF NOT EXIST mi nefunguje a tak jsem to vyresil na tvrdo takto:
bohuzel je to prasarna, vim... Ale lepsi reseni mne nenapadlo... Muzete mi poradit? Aby to nebyla takovato prasarna?
--- Konce citace ---
to už tu jednou bylo, ne? Prostě si to vytáhni z information schema (tam najdeš všechno), odkaz už jsem dával do předchozího dotazu - http://stackoverflow.com/questions/972922/add-column-to-mysql-table-if-it-does-not-exist
Navigace
[0] Seznam témat
[#] Další strana
Přejít na plnou verzi