Autor Téma: SQLite - zmena štruktúry tabuľky vedie k chybe  (Přečteno 967 krát)

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2779
  • Karma: 26
    • Verze Delphi: XE7 professional
Kód: [Vybrat]
CREATE TABLE COMPETITIONS (
    IDCOMPETITIONS INTEGER    NOT NULL
                              PRIMARY KEY AUTOINCREMENT,
    TITLE          TEXT (100) NOT NULL,
    YEARS          INTEGER    NOT NULL,
    MAXMEMBERS     INTEGER    NOT NULL,
    SERIALNUMBER   INTEGER    DEFAULT (0)
                              NOT NULL
 
);
Akýkoľvek pokus o zmenu štruktúry vedie k chybe:
Citace
Could not commit table structure. Error message: FOREIGN KEY constraint failed
Ja na to nevidím dôvod. Samozrejme, že IDCOMPETITIONS  je až v jednej tabuľke použitý v definícii foreign key.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2779
  • Karma: 26
    • Verze Delphi: XE7 professional
Re:SQLite - zmena štruktúry tabuľky vedie k chybe
« Odpověď #1 kdy: 10-06-2016, 12:15:13 »
Tak som zrušil ten foreign key a potom to zbehlo.
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline geby

  • Plnoletý
  • ***
  • Příspěvků: 163
  • Karma: 13
    • Verze Delphi: 7, 2007, XE2, 10.2
    • Synapse
Re:SQLite - zmena štruktúry tabuľky vedie k chybe
« Odpověď #2 kdy: 10-06-2016, 22:14:52 »
1. Nejak nechapu, cemu se divis? Proc by ti to melo dovolit menit deklaraci tabulky, na kterou ma jina tabulka navazany foreign key? To je snad v poradku, ze to to nedovoli, ne?

2. Deklarace te tabulky neni pro sqlite uplne v poradku. U prvni polozky staci jen integer primary key. Neni to ale skutecmy sloupec, ale jen interni odkaz na rowid interni b-tree struktury. Ten je jaksi prirozene not null, a zaroven prirozene jej nemohou mit dva zaznamy stejne.

Zkratka, se sqlite je dobre pracovat trochu jinak. Neni to nejaka obycejna nahrada za oracle, firebirdy a tak. Ma sva zjednoduseni, a jejich znalost dokaze vymacknout z databaze maximum. To ale neni mozne pres ty vsemozne univerzalni frameworky, ktere se naopak chybejici vlastnosti snazi nejak simulovat, aby to bylo srovnatelne s velkymi db. A taky je dobre myslet na to, kdy cloveku staci sqlite, a kdy je dobre sahnout po necem vetsim.
« Poslední změna: 10-06-2016, 22:17:45 od geby »

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2779
  • Karma: 26
    • Verze Delphi: XE7 professional
Re:SQLite - zmena štruktúry tabuľky vedie k chybe
« Odpověď #3 kdy: 11-06-2016, 09:13:23 »
Citace
1. Nejak nechapu, cemu se divis? Proc by ti to melo dovolit menit deklaraci tabulky, na kterou ma jina tabulka navazany foreign key?
Lebo som iba pridával ďalší stĺpec, ktorý s tým nemal nič spoločné. A doteraz mi to vždy tak išlo.
Citace
Zkratka, se sqlite je dobre pracovat trochu jinak.
To som rýchlo zistil, že sa ňou musí robiť ináč. Len ešte neviem ako ???
Citace
]A taky je dobre myslet na to, kdy cloveku staci sqlite, a kdy je dobre sahnout po necem vetsim.
V tom mám úplne jasno.


Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1759
  • Karma: 77
    • Verze Delphi: D2007, XE3, DX10
Re:SQLite - zmena štruktúry tabuľky vedie k chybe
« Odpověď #4 kdy: 11-06-2016, 10:20:40 »
To som rýchlo zistil, že sa ňou musí robiť ináč. Len ešte neviem ako ???
Nejlpepsi bude na strance WikiDoc Embaracadero, kde neco popisuji, ale jak jsem se dival, nic moc.
Ale treba jak FM mapuje IMMEDIATE transakci tam je ;-)

Pokud to s Sqlite myslis vazne, tak je podle me treba ji porozumet bez ohledu na FireDac.
Sqlite ma precisni dokumentaci.

No a kdyz budes vedet, jak Sqlite pracuje jako takova, tak muzes resit, co kdo kde jak udelal,
kdyz na ni narouboval nejake dataset based komponenty napr. FireDac.

Ja ti s tim s FireDac+Sqlite neporadim, protoze jednak pro Sqlite pouzivam vlastni dataset based
komponenty a dvak uz jsem nekdy od roku 2010 s Sqlite nic noveho nedelal.


Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 2779
  • Karma: 26
    • Verze Delphi: XE7 professional
Re:SQLite - zmena štruktúry tabuľky vedie k chybe
« Odpověď #5 kdy: 11-06-2016, 10:27:23 »
Hm, tak veľké štúdium nepripúšťam :D  V tom prípade mám dve možnosti:

1) Access - ešte ma nesklamal
2) FireBird Embeded.

V danom konkrétnom prípade ostanem pri Access-e. Pôvodne to funguje na ňom. Takže aj novú štruktúru je lepšie hodiť doň.

Týmto sa lúčim s SQLite 8)
Delphi XE7, FireBird
Expert na kladenie nejasne formulovaných otázok.

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: