Adatbázis létrehozása szoftverrel
Adatbázis létrehozása szoftverrel
Feladat: az adatbázistáblák adatainak átvitele Oracle-ba az InterBase adatbázis-táblákban. Az InterBase adatbázis és az összes tábla programozva kell létrehozni az Oracle adatbázisból származó információk olvasásával.
A nemzeti WIN1251 kódolás telepítése nem lehetséges az InterBase adatbázis létrehozása során, az IBDataBase komponens használatával. Amint megadom az IBDataBase1.Params.Add ("DEFAULT CHARACTER SET WIN1251") parancsot, a program hibaüzenettel fejeződik be. Más paraméterek (SIZE, USER, PASSWORD) elfogadhatók. És hogyan állíthatom be a PXW_CYRL rendezési sorrendjét, ha információt kapok az oszlop típusáról és dimenziójáról az Oracle adatbázisból. Köszönöm.
Köszönöm Johnmeneket, de én talán valami nem értett, vagy nem magyarázta el rosszul. Az IBConsole-ban tökéletesen létrehozhatom a szükséges táblázatokat a szükséges kódolási és rendezési sorrendben, de ezt a programomban meg kell csinálnom. Én ezt így teszem:
IBDataBase1.Params.Add ("USER" "+ Trim (CreateBase.Edit2.Text) +" "");
IBDataBase1.Params.Add ("PASSWORD" "+ Trim (CreateBase.Password.Text) +" "");
IBDataBase1.Params.Add ("PAGE_SIZE" + Trim (CreateBase.ComboBox1.Text));
//IBDataBase1.Params.Add("DEFAULT CHARACTER SET WIN1251 ");
IBDataBase1.SQLDialect: = 3;
IBDataBase1.CreateDatabase;
A TIBDatabase.CreateDatabase + F1-ből következik, hogy nem kell megadnia az országos kódolást az adatbázis létrehozásának szakaszában:
1. Adja meg az adatbázis nevét az adatbázis fájl meghajtójához, elérési útjához és fájlnevéhez.
2. Állítsa be a Paramétereket a CREATE DATABASE utasítás paramétereire:
USER "SYSDBA"
JELSZÓ "mester"
PAGE_SIZE 4096
3. Állítsa be az SQLDialect értéket.
4. Hívja a CreateDatabase metódust.
És szükségem van további adatátvitelre az Oracle-től. Szóval megkérdezem - hogyan kell ezt körülölelni. Köszönöm.
2Aleksandr_n # xA0; (27/10/05 14:58)
Ez egy egyszeri feladat vagy univerzális Oakle vezető az IB-től?
> Alexander_n # xA0; (27.10.05 16:32) [2]
1. A név és a jelszó idézőjelei egyediek. Add ("USER" "+ Trim (CreateBase.Edit2.Text) +" "" ");
2. Add ("DEFAULT CHARACTER SET WIN1251"); # xA0 teljesen jogi.
3. Nem látom az adatbázis nevét.
Sergey13. A feladat meglehetősen egyszeri, de az adatbázisban található táblák több tucat, és ha kézzel hozza létre őket. Bár lehet egyetemes peregonchiknak tekinteni, és nemcsak az Oracle-től.
Johnmen. Az adatbázis neve meg van adva. Csak nem. És az idézetekért - THANKS. Megszerzett. De új kérdés merült föl. A táblát létrehozták és betöltötték az adatokkal. Az IBConsole meglátja (struktúra és adatok), de nem látja az Inteactive SQL-et, azaz az Inteactive SQL-et. válaszként a lekérdezés kiválasztási számra (*) table_name Megkapom a válasz táblát ismeretlen table_name. És ha az adatbázisban létrehozok egy másik táblát az ISQL-ből, akkor ugyanaz a kérés megy hozzá. Mi lehet a probléma? Köszönöm.
A metaadatok gyorsítótárában.
Mielőtt végrehajtaná a DML lekérdezéseket (DDL után), jó lenne újra csatlakozni az adatbázishoz.
2 [5] Alexander_n # xA0; (Október 27 05 17:36)
> A feladat meglehetősen egyszeri, de az adatbázis táblái tucatnyiak, és ha kézzel hozza létre őket
Ha én lennék, három programot használnék. TOAD + NotePad + IBExpres.
Valójában mindez megpróbálta elérni a DataPump / IBDataPumpot. És ne fordítsd újra a kereket.
2 [8] Vitaly Panasenko # xA0; (Október 28 05 10:19)
Ez a probléma, miközben metaadatokkal foglalkozik, ahogy értettem.
A kérdés továbbra is fennállt. Milyen gyorsítótárazás lehet, ha a számítógép teljesen újraindult, de a helyzet megismétlődik az IBConsole létrehozta a táblázatokat (szerkezet és adatok), de nem látja az Inteactive SQL-et, azaz válaszként a lekérdezés kiválasztási számra (*) table_name Megkapom a válasz táblát ismeretlen table_name.
Tiszta cselekvési sorozatot kapunk.
lehet, hogy nincs elég joga az asztalhoz
Aleksandr_n # xA0; (10/28/05 10:59) [10]
Adja meg a DDL-t a táblázat létrehozásához és a hozzá tartozó lekérdezéshez.
Erősen gyanítom, hogy létrehoztál egy asztalt, melynek esetleges érzékelője volt.
Ui Drop IBConsole, használd az IBExpert-et.
Az adatbázis létrehozása után létrehozok egy táblát
IBTable1.Active:=False;
IBTable1.TableName: = "table_name";
ha nem IBTable1.Exists akkor
# xA0; kezdődik
# xA0; az IBTable1.FieldDefs do
# xA0; # xA0; kezdődik
# xA0; # xA0; Törlés;
# xA0; # xA0; i: = 0-hoz ListBox2.Items.Count-1 do
# xA0; # xA0; az AddFieldDef nem
# xA0; # xA0; # xA0; kezdődik
# xA0; # xA0; # xA0; Név: = ListBox2.Items [i];
# xA0; # xA0; # xA0, ha a OraQuery1.FieldByName (ListBox2.Items [i]) .AdatType = ftFloat majd
# xA0; # xA0; # xA0; # xA0; DataType: = ftInteger
# xA0; # xA0; # xA0; egyébként
# xA0; # xA0; # xA0; # xA0; DataType: = OraQuery1.FieldByName (ListBox2.Items [i]) Adatkészlet;
# xA0; # xA0; # xA0; Méret: = OraQuery1.FieldByName (ListBox2.Items [i]) Méret;
# xA0; # xA0; # xA0; Kötelező: = OraQuery1.FieldByName (ListBox2.Items [i]) Kötelező;
# xA0; # xA0; # xA0; vége;
# xA0; # xA0; vége;
# xA0; # xA0; az IBTable1.IndexDefs nem
# xA0; # xA0; # xA0; kezdődik
# xA0; # xA0; # xA0; Törlés;
# xA0; # xA0; # xA0; az AddIndexDef nem
# xA0; # xA0; # xA0; # xA0; kezdődik
# xA0; # xA0; # xA0; # xA0; Név: = "";
# xA0; # xA0; # xA0; # xA0; Mezők: = ListBox2.Items [ListBox2.ItemIndex];
# xA0; # xA0; # xA0; # xA0; Opciók: = [ixPrimary];
# xA0; # xA0; # xA0; # xA0; vége;
# xA0; # xA0; # xA0; vége;
# xA0; IBTable1.CreateTable;
# xA0; vége;
A ListBox2-ben van egy lista a mezőnevekről (részben vagy egészben) az Oracle adatbázis táblából. Ezután létrehozom a lekérdezést és
OraQuery1.Open;
OraQuery1.First;
IBTable1.Close;
IBTable1.Database: = IBDataBase1;
IBTable1.TableName: = "table_name";
IBTable1.Open;
míg a OraQuery1.Eof nem
# xA0; kezdődik
# xA0; IBTable1.Insert;
# xA0; i: = 0-hoz IBTable1.Fields.Count-1 do
# xA0; IBTable1.Fields [i] .Value: = OraQuery1.FieldByName (IBTable1.Fields [i] .FieldName) .Value;
# xA0; IBTable1.Post;
# xA0; OraQuery1.Next;
# xA0; vége;
IBTable1.Close;
> Erősen gyanítom, hogy létrehozott egy táblázatot, melynek esetére érzékeny neve van.
Igen, a harmadik nyelvjárásban annyi ember van, aki egy zsákutcában van.
Uh-uh.
És hol van
Aleksandr_n # xA0; (10/28/05 10:59) [10]
A kérdés továbbra is fennállt. Milyen gyorsítótárazás lehet, ha a számítógép teljesen újraindult, de a helyzet megismétlődik az IBConsole létrehozta a táblázatokat (szerkezet és adatok), de nem látja az Inteactive SQL-et, azaz válaszként a lekérdezés kiválasztási számra (*) table_name Megkapom a válasz táblát ismeretlen table_name.
?
Aleksandr_n # xA0; (28.10.05 11:25) [15]
Miért van ilyen probléma a TIBTable-el?
Használja a TIBSQL és a CREATE TABLE lekérdezést. sokkal egyszerűbb, és a kód érthetőbb lesz.
1. A táblát létrehoztuk és betöltöttük az adatokkal. Az IBConsole meglátja (struktúra és adatok), de nem látja az Inteactive SQL-et, azaz az Inteactive SQL-et. válaszként a lekérdezés kiválasztási számra (*) table_name Megkapom a válasz táblát ismeretlen table_name. És ha az adatbázisban létrehozok egy másik táblát az ISQL-ből, akkor ugyanaz a kérés megy hozzá. # xA0; Megállapítást nyert, hogy ha a kérelem megjelenik a formában # xA0; select count (*) "table_name", majd végrehajtódik. Mi lehet a probléma?
2. Kérje meg, hogyan kapja meg a mező nevét, amelyen a kulcs (PRIMARY KEY) épül fel, ha csatlakozik az asztalhoz, melyik struktúrát nem ismeri.
3. A táblát a következőképpen pumpálom:
OraQuery1.Close;
OraQuery1.SQL.Clear;
OraQuery1.SQL.Add ("select * from table_name");
OraQuery1.Open;
OraQuery1.First;
IBTable1.Close;
IBTable1.Database: = IBDataBase1;
IBTable1.TableName: = "table_name";
IBTable1.Open;
míg a OraQuery1.Eof nem
kezdődik
IBTable1.Insert;
i: = 0-hoz IBTable1.Fields.Count-1 do
IBTable1.Fields [i] .Value: = OraQuery1.FieldByName (IBTable1.Fields [i] .FieldName) .Value;
IBTable1.Post;
IBTransaction1.CommitRetaining;
OraQuery1.Next;
végén;
de valahol 33 000 bejegyzés letöltése után hibát kapok a memóriából. Mit tettem rosszul?
Köszönöm.
> Mit tettem rosszul?
> Köszönöm.
Ön már válaszolt:
1. Olvassa el az IB dialektusokat.
2. IBTable tárolja az ügyféllel mindent, használjon IBSQL-t.
> Feladat: az adatbázistáblák adatainak Oracle-be történő átvitele
> az InterBase adatbázis tábláihoz. Adatbázis InterBase és
> minden táblát programszerűen kell létrehozni olvasás közben
> információk az Oracle adatbázisból.
És miért olyan bonyolult? Valóban nincs az adatbázis fizikai modellje, még csak fogalmi sem?
De még így is, mindig lehetséges a fizikai modellben meglévő bázis "visszafordítása". Ezután nem csak táblák fognak fogadni, hanem minden kommunikáció, ellenőrzések, sőt a szerver logika is. Ezután létre tud hozni egy szkriptet az új CASE-eszköz DBMS adatbázis létrehozásához.
Aleksandr_n # xA0; (11/01/05 11:30) [19]
Megtaláltam, ha a kérelmet a formában mutatják be # xA0; select count (*) "table_name", majd végrehajtódik. Mi lehet a probléma?
Memória: 0,78 MB
Időzítés: 0.051 mp