[ lucky666 @ 11.06.2008. 13:49 ] @
Hteo sam da kreiram firebird bazu,za to mi je receno da se koristi Flame Robin.Otvorim bazu (blanko(praznu idem na tabele i na create table,otvara mi se prozor koji sluzi za pisanje sql koda
Code:

CREATE TABLE table_name
(
    column_name {< datatype> | COMPUTED BY (< expr>) | domain}
        [DEFAULT { literal | NULL | USER}] [NOT NULL]
    ...
    CONSTRAINT constraint_name
        PRIMARY KEY (column_list),
        UNIQUE      (column_list),
        FOREIGN KEY (column_list) REFERENCES other_table (column_list),
        CHECK       (condition),
    ...
);

kao se koristi ovaj prozor?slab sam sa engleskim,a sql znam skolski,znam querije da prasvim ali nisam do sada pravio baze!
POMOC!HVALA!
evo neki moj pokusaj koji ima mnogo greski ali ne razumuem da ga ispravim
Code:
CREATE TABLE Country
(
    country_name { varchar | COMPUTED BY | domain}
        [DEFAULT { | NULL | USER}] [NOT NULL]
  
        PRIMARY KEY (country_name),
);
[ savkic @ 11.06.2008. 14:07 ] @
Flame Robin nisam koristio pa ne mogu komentarisati kako se u njemu radi, možeš uporediti sa IBExpert personal edition i videti koji ti više odgovara.

Evo primera kako izgleda skript za pravljenje jedne baze (generisan je iz Sybase PowerDesignera):

Code:


CREATE DATABASE 'PROBA.fb' 
USER 'XXXX'
PASSWORD 'XXXXX';

/*==============================================================*/
/* Table : LOGS                                                 */
/*==============================================================*/
CREATE TABLE LOGS (
    DATE_TIME       TIMESTAMP,
    USER_NAME       VARCHAR(10),
    IP              CHAR(15),
    DESCRIPTION     VARCHAR(40)
);

/*==============================================================*/
/* Index: LOGS_DATE_TIME                                        */
/*==============================================================*/
CREATE ASC INDEX LOGS_DATE_TIME ON LOGS (DATE_TIME);

/*==============================================================*/
/* Index: LOGS_USER_NAME                                        */
/*==============================================================*/
CREATE ASC INDEX LOGS_USER_NAME ON LOGS (USER_NAME);

/*==============================================================*/
/* Table : USERS                                                */
/*==============================================================*/
CREATE TABLE USERS (
    USER_NAME       VARCHAR(10)     NOT NULL,
    USER_PASS       VARCHAR(10)     NOT NULL,
    TNFR_USER       VARCHAR(10),
    TNFR_PASS       VARCHAR(10),
    EXPIRE_DATE     TIMESTAMP       NOT NULL,
    LAST_LOGIN      TIMESTAMP,
CONSTRAINT PK_USERS PRIMARY KEY (USER_NAME)
);

[ lucky666 @ 11.06.2008. 14:16 ] @
Ok razumem ja sql,ali zasto mi javlja frresku za sledeci kod
Code:

CREATE TABLE COUNTRY
(
    COUNTRY COUNTRYNAME varchar NOT NULL,
    CURENCY varchar(10) NOT null,
    primary key (COUNTRYN)
)

Posto nemam neku konkretnu ideju pokusavam da napravim bazu iste strukture kao sto je EMOPLOYRR>GDB kojaa se dobija uz delphi
a kod je isti kao i kod tabele country iz baze koja mi sluzi kao vodilja
ne razumem
a u datebase editoru kod tabele izgleda ovakao
Code:


CREATE TABLE COUNTRY (
       COUNTRY COUNTRYNAME /*Varchar(15) */ NOT NULL,
       CURRENCY Varchar(10) NOT NULL,
       PRIMARY KEY (COUNTRY)
);




DAj neki link kako da SKINEM IBExpert personal edition?

[Ovu poruku je menjao lucky666 dana 11.06.2008. u 15:50 GMT+1]
[ dogriz @ 12.06.2008. 06:26 ] @
Ako ti je COUNTRYNAME definisan kao domain (varchar(15)), onda ti je greška u redu:
COUNTRY COUNTRYNAME varchar NOT NULL - imaš višak jedan varchar, znači treba da izgleda ovako:
COUNTRY COUNTRYNAME NOT NULL

Ako hoćeš IBExpert (i ja ga koristim više od FlameRobina), odeš na njihov sajt i moraš prvo da se registruješ da bi ti bio moguć DL: http://ibexpert.biz/ibe/
[ lucky666 @ 12.06.2008. 14:29 ] @
hvala Igore!
a kada ukucam bez varchar(15) opet pokazuje greske....
Posto mi ne ide nesto ova registracija jel tiproblem da stavis free verziju ibexpress?
HVALA TI!
[ savkic @ 13.06.2008. 12:46 ] @
Hajde za početak javi koju grešku dobijaš.

Za IBExpert, doista su mnogo zakomplikovali registraciju, poslednji put mi je trebalo pola sata da se snađem, ako ne uspeš sam kontaktiraj njih.
[ lucky666 @ 14.06.2008. 14:06 ] @
Snasao sam se u medju vremenu za tabele baze podataka, napisao trigers,generators,procedure,view...
Procedure sam sve napisao sem 2 koje se medjusomno pozivaju,u stvari jedna drugu...Evo koda procedure Show_langs,i u sistemskoj bazi sljaka super,ali kada je ja napisemkao novu proceduru u mojoj bazi,koja je kopija sistemske pojvljujje mi se greska,cak i kada idem na copy/paste opet greska
kod procedure
Code:

SET TERM ^ ;
CREATE PROCEDURE SHOW_LANGS (
    CODE Varchar(5),
    GRADE Smallint,
    CTY Varchar(15) )
RETURNS (
    LANGUAGES Varchar(15) )
AS
declare variable i integer;
BEGIN
  i = 1;
  WHILE (i <= 5) DO
  BEGIN
    SELECT language_req[:i] FROM joB
    WHERE ((job_code = :code) AND (job_grade = :grade) AND (job_country = :cty)
           AND (language_req IS NOT NULL))
    INTO :languages;
    IF (languages = ' ') THEN  /* Prints 'NULL' instead of blanks */
       languages = 'NULL';         
    i = i +1;
    SUSPEND;
  END
END^
SET TERM ; ^

opis grske
Code:

Dynamic SQL Error
SQL error code = -607
scalar operator used on field LANGUAGE_REQ which is not an array

ne znam kako da resim problem jer,language_req je polje tipa varchar(15)?
P.S.Skinuo sam ibexpres!
[ savkic @ 14.06.2008. 14:50 ] @
Ne možeš koristiti VARCHAR ili CHAR polja kao niz karakatera. Nisam shvatio šta si pokušavao da postigneš sa
WHILE (i <= 5) DO SELECT language_req[:i] FROM joB, tako da ti ne mogu konkretno reći šta da promeniš. Ako ti treba da dobiješ jedno slovo iz polja možeš koristiti SUBSTRING funkciju (pogledaj u release notes za objašnjenja).
[ lucky666 @ 14.06.2008. 15:54 ] @
nemam neku posebnu nameru pisanja vec jednostavno prepisujem iz postojece baze,da bi nesto ukapirao
a tamo je kod od reci do reci kao sto sam poslao u poruci,i LANGUAGE_REQ je definisano u bazi kao barchar(15),i sliuzi za primenu u nizu.
[ savkic @ 14.06.2008. 16:29 ] @
> nemam neku posebnu nameru pisanja vec jednostavno prepisujem iz postojece baze,da bi nesto ukapirao
> a tamo je kod od reci do reci kao sto sam poslao u poruci,i LANGUAGE_REQ je definisano u bazi kao barchar(15),i sliuzi za primenu u nizu

Tako kako je napisano ne vidim neku svrhu, izdvojeni char iz polja se više ne koristi, ako job ima više slogova koji odgovaraju prosleđenom uslovu dobiće se greška a ako ima samo jedan, dobiće se više identičnih rezultata. Uzmi Employee bazu koja dolazi uz FB, tu možeš videti kako se neke stvari rade. Dalje idi na www.ibphoenix.com i prati linkove.
[ lucky666 @ 14.06.2008. 16:53 ] @
>Uzmi Employee bazu koja dolazi uz FB
Tu sam bazu i uzeo i to je kod iz nje
A dal ima sta na srpskom o firebird-u ili ibexpres?
[ rambo @ 14.06.2008. 17:00 ] @
@savkic
Da se nisi malo umorio od odgovaranja na skoro sve postove ostalih članova pa si prevideo šta piše u tekstu greške?

@lucky666
Problem je u tome što nisi dobro "prekopirao" strukturu tabele JOB. Polje LANGUAGE_REQ je deklarisano kao
Code:

    LANGUAGE_REQ     VARCHAR(15) [1:5]

što će reći da je to niz od 5 članova tipa VARCHAR(15). Shodno tome, ona procedura je sasvim ispravna.

Inače, SQL i projektovanje baza podataka se ne uči ovako kako si ti počeo. Uspećeš da nešto razumeš ali ćeš propustiti neke vrlo bitne stvari. Moja ti je preporuka da uzmeš neku dobru knjigu koja se bavi SQL-om uopšte, kao i jedinu odličnu knjigu za Firebird od Helen Borrie.
[ lucky666 @ 14.06.2008. 17:12 ] @
@rambo
Hvala ti puno!
A koju bi mi knjigu preporucio za sql,gde moze da se nadje ta knjiga za Fidebird,na srpskom?
HVALA!
[ lucky666 @ 14.06.2008. 17:24 ] @
@rambo
A zasto nece da mi privhati izmenu strukture tabele job?
[ schild @ 14.06.2008. 18:48 ] @
Ljudi, svaka vama cast na dobrim zivcima!!!

Dobra knjiga za SQL ti je recimo "SQL za 21 dan" - nije najbolja sigurno, ali mene je naucila osnove. A posle imas na internetu sve.
Za Firebird nemas na srpskom, samo engleska verzija, i placa se.
Ali imas puno besplatnih tutorijala na www.ibphoenix.com, pogledaj i uputstva za Interbase posto je to skoro isto.
Imas i na http://www.janus-software.com/fbmanual/ dobrih stvari.

[ savkic @ 14.06.2008. 23:49 ] @
> @savkic
> Da se nisi malo umorio od odgovaranja na skoro sve postove ostalih članova pa si prevideo šta piše u tekstu greške?

Greška je:

> SQL error code = -607
> scalar operator used on field LANGUAGE_REQ which is not an array

Poruka kaže da polje nije niz, a lucky da je VARCHAR(15), nije se nikako moglo zaključiti da je polje array (koji se inače skoro nikad i ne upotrebljavaju), pretpostavio sam da želi pristupiti pojedinim karakterima iz tog polja na način koji je možda validan u nekom drugom RDBMS (odakle je kopirao primer) ali ne i u FB.