Při kompilaci se těsně před zapsáním .exe souboru vyskytla chyba „unexpected error“.
Chybu jsem odstranil postupným odebíráním části projektu jsem objevil chybný ctl.
Jeho odstraněním se problém vyřešil.
Chybu způsobil:
Class DHTMLEDLibCtl.DHTMLEdit
Pravděpodobně změnou konfigurace při aktualizaci prohlížeče IE.
Při pokusu o ReDim nebo ReDim Preserve u vícerozměrného pole toto nelze použít na jinou než poslední část pole.
tedy:
Dim Pole() ‘Projde
ReDim Pole (10,10) ‘Projde
Redim Pole(10,15) ‘Projde
ReDim Pole(15,15) ‘Err 9 – Subscript out of range
Řešení je pouze jedno a to:
Erase Pole
ReDim Pole(15,15)
… a znovu naplnění celého pole.
Při použití menšího čísla než je současné dojde ke ztrátě dat!
Redim Pole(14,14) ‘Projde, ale ztratí se data z pozice (15,0) – (15,15) a zaroveň všechny na pozici (x,15)
Po nové instalaci Windows se může stát že původní projekt obsahující reference na ieframe.dll nebude fungovat.
Objeví se Hláška e Error:
‘ieframe\1′ dll not found
Problém je zde:’ MS Internet Control’ v Project-> Component.
Oprava je nasledující:
1, Otevřít projekt a ignorovat vsechny chyby
2, Odstranit control z formulářů kde se nachází Browser.
3, Uložit projekt
4, Otevřít projekt
5, Odstranit reference Microsoft Internet Control
6, Odstranit Component Microsoft Internet Control
7, Uložit projekt
8, Otevřít projekt
9, Přidat referenci C:\WINDOWS\system32\ieframe.dll
10, Přidat Component Microsoft Internet Control
11, Uložit projekt
12, Otevřít projekt
13, Vložit do formulářů control Browser a nazvatje stejnými jmény jako byly.
14, Uložit a vše by mělo být OK.
V běžném recordsetu připojeném na MySQL pravděpodobně nelze vložit standartním postupem hodnotu NULL do políčka v databázi. Standartní postup považuji přes DataEnvironment.
Příklad:
Set rs = DataEnvironment1.rsVolnyPrikaz
DataEnvironment1.VolnyPrikaz
With rs
If Not IsNull(.Fields(„ZPRACOVANO“).Value) Then
.Fields(„ZPRACOVANO“).Value = sNull
.Update
End If
End With
…
Na řádku .Update vždy skončí chybou.
Nelze ani:
Set .Fields(„ZPRACOVANO“).Value = Null
Nebo jsem alespon žádný jiný způsob nenašel.
Pro zápis hodnoty NULL lze ale použít běžný SQL zápis UPDATE:
Set rs = DataEnvironment1.rsVolnyPrikaz
DataEnvironment1.Commands.Item(„VolnyPrikaz“).CommandText = „UPDATE Tabulka SET `ZPRACOVANO` = NULL“
DataEnvironment1.VolnyPrikaz
Set rs2 = Nothing
Takto vše funguje jak má a hodnota Null se zapiše do tabulky databáze bez chyby.
Pokud někdo zná nějaký způsob jak zapsat Null do DB pomocí DataEnvironment – SEM S NÍM
Řádek nelze nalézt a aktualizovat. Pravděpodobně byly od posledního čtení změněny některé hodnoty.
Run-time error: -2147217864 (80040e38):
The specified row could not be located for updating. Some values may have been changed since it was last read.
Tato chyba se objeví v případě, že do otevřeného recordsetu ukládáme stejnou hodnotu jaká už v databázi je, a následně tento recordset chceme Updatovat. Sloupec HODNOTA obsahuje znaky „ABCD“ a do stejného sloupce opět vkládám znaky „ABCD“ Procedura skonci popisovanou chybou na červeném řádku při pokusu o rs.Update
Příklad:
sText = „ABCD“
Set rs = DataEnvironment1.rsUloz
DataEnvironment1.Uloz
rs.Fields(„HODNOTA“).Value = sText
rs.Update
rs.Close
Řešení:
Kontrolovat zda vkládaná hodnota není stejná jako již existující záznam v databázi (Stejný výsledek dostaneme i při pokusu o vložení NULL do sloupce který NULL obsahuje).
sText = „ABCD“
Set rs = DataEnvironment1.rsUloz
DataEnvironment1.Uloz
If rs.Fields(„HODNOTA“).Value <> sText Then
rs.Fields(„HODNOTA“).Value = sText
rs.Update
End If
rs.Close
Po této úpravě již procedura proběhne bez uvedené chyby.