Diskuze: SQLite locked
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 13 zpráv z 13.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí SQL a databází, jsme si ověřili nabyté zkušenosti z kurzu.


Nejsem si jistý, ale asi bych názvy "sloupců" dal do hranatých závorek, a zkusil bych se podívat, jaké hodnoty těch parametrů se dosazují do příkazu. Pokud to vyhazuje chybu asi se snažíš vložit jiný typ dat, než je na "sloupci" v databázi nastaven, nebo máš parametr prázdný a databáze vyžaduje nějakou hodnotu...
Typové dosazení proměnných je určitě dobře, kontrolováno. Můžeš uvést příklad té závorky, nějak nemám představu jak by to mohlo vypadat.
using (SQLiteCommand command = new SQLiteCommand("UPDATE [TabulkaUtok] SET [Lterc]=@param1, [Pterc]=@param2, [Cas]=@param3, [Hodnoceni]=@param4 WHERE [Druzstvo]=@param5 AND [Okres]=@param6 AND [Kategorie]=@param7", this.connection))
Zkus si před ukládáním ty parametry vypsat...
Bohužel nic, závorky opraveny a prováděna kontrola při zápisu, vždy vše naplněno jak má být.
Pak už nevím, s SQLite jsem nikdy nedělal... Neprovádí se současně s tím UPDATEm ještě něco jiného, co by mohlo zamykat tu DB?
Před volám funkce mám vše uzavřené.
MessageBox.Show(getConnection().State.ToString());
getConnection().Open();
MessageBox.Show(getConnection().State.ToString());
Kontrolováno, vždy je Close ikdyž hodí chybu a pak open. Uměle jsem tam vytvořil chybu v uzavření a to zobrazí při dvojitém pokusu o otevření hned v příkazu getConnection().Open() takže by měl mít jen jeden přístup.
Nevím, jestli SQLite má taky nějaké transakční logy, zkus se podívat,
když ti to vyhodí chybu, jestli není ten konkrétní záznam uzamčen...
Jinak už jsem v koncích...
Nevím co jsou transakční logy ještě jsem se s tím nesetkal ale já jsem nic vědomě nezamykal. Můžou se nějak uzamčít sami?
Ve chvíli, kdy pracuji s nějakým záznamem, je tento automaticky uzamčen databází, abychom si navzájem dva uživatelé nemohli měnit údaje, takže pokud změním záznam, je v tu chvíli uzamčen a pokud se "nestihne odemknout" dřív, než ten záznam chci měnit znovu, nelze ho měnit...
Takže výsledek bádání je, že padání měla na svědomí jedna funkce
public string PosledniHodnocene(bool kategorie)
{
string results = null;
getConnection().Open();
using (SQLiteCommand command2 = new SQLiteCommand("Select * FROM TabulkaUtok WHERE Kategorie = @param1 ORDER BY StartCislo ASC ", getConnection()))
{
command2.Parameters.Add(new SQLiteParameter("@param1", kategorie));
using (SQLiteDataReader reader2 = command2.ExecuteReader())
{
while (reader2.Read())
{
if (reader2["Hodnoceni"] + "" == "6004")
{
results = (reader2["Druzstvo"].ToString() + " " + reader2["Okres"].ToString());
break;
}
}
}
}
getConnection().Close();
return results;
}
U příkazu reader jsem neměl použitý using, který asi blokoval přístup do databáze. Teď už to vypadá, že funguje dobře ještě jednou děkuji všem za pomoc.
Myslel jsem si to, že se do toho někde cpe něco jinýho, co blokuje
přístup do DB...
Hlavně, že se ti to podařilo najít 
Zobrazeno 13 zpráv z 13.