Главная Новые темы Список тем Задать вопрос Поиск  

Форум "DataBase и SQL"


Язык запросов баз даных


 #0 Паша © 25.04.06 12:18:15 - 11.05.06 10:59:54

IB



как правильно написать скрипт? хочу сразу кучу табличек создать

CREATE TABLE "ScladW\ARTIKYL" (
GRUP CHAR(5) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA,
ART CHAR(15) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA,
NAME VARCHAR(30) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA
);

CREATE TABLE "ScladW\BASES_03" (
ARM CHAR(2) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA,
TASK CHAR(20) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA,
NAME_DBF CHAR(8) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA,
NAME_NTX CHAR(8) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA,
INDEX VARCHAR(100) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA,
MESSAGE VARCHAR(40) CHARACTER SET WIN1251 NOT NULL COLLATE WIN1251_UA
);

на втором create почему-то ругаеца. видимо, надо как-то их разделять, или в чем дело? Цитата

 #1 Офигевший 25.04.06 13:27:59

SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE "basa.GDB"
USER "SYSDBA"
PASSWORD "masterkey"
PAGE_SIZE 8192;

Create Table Artikul
(
 id Integer not null,
 Grup varchar(5),
 Art varchar(15),
 Name varchar(30),
 PRIMARY KEY (ID)
);

В таком виде проще и наглядней.
 #2 Паша © 25.04.06 13:54:23

уже разобрался, вроде. насчет наглядности - так я его шо, сам пишу? программно, надо базку перегнать, разовая операция. табличек просто до чертиков, а уж полей в них - уууу!!! ужос!
 #3 maximus © 25.04.06 14:00:29

с эксперта можно скрипт выгрузить только таблиц...
быстро и удобно.
 #4 Паша © 25.04.06 14:14:41

попутно вопрос:
хочу логические поля в табличку засунуть, но в ИБ их нету. потому думаю их сэмулировать, так:

CREATE TABLE "аааа" (
      "CODE" CHAR(1) DEFAULT 'F' NOT NULL);

теперь хочу проверку тудой прикрутить, шоб токо 'T' и 'F' можно было туда засунуть. как? надыбал конструкцию CHECK,только как ее использовать правильно?
 #5 Офигевший 25.04.06 14:16:51

#2  Паша © 25.04.06 15:54:23

Я думал это человек настолько ошизел, что такой код (см. 0) пишет.
 #6 Паша © 25.04.06 14:25:57

> #5  Офигевший

гы. программка на экранчик такой код пишет

да, так шо с ограничением вносимых данных? вот, нарыл:

CREATE DOMAIN PRODTYPE
AS VARCHAR(12)
CHECK (VALUE IN (’software’, ’hardware’, ’other’, ’N/A’));

CREATE DOMAIN DEPTARRAY AS CHAR(31) [4:5];

правда, не пойму смысла [4:5]...

а для поля можно что-то в этом роде слепить? вроде как можно, токо синтаксиса нигде не нашел.
 #7 Офигевший 25.04.06 14:52:27

Кажись четыре слова по пять символов
 #8 Офигевший 25.04.06 14:55:37

хотя нет, фигня это
 #9 VictorT © 25.04.06 15:05:31

 #10 maximus © 25.04.06 15:14:49

CREATE DOMAIN BOOLEAN_1 AS
CHAR(1) CHARACTER SET WIN1251
DEFAULT 'T'
CHECK (VALUE IN ('T', 'F'))

я не пойму, ты все руками пишеш или в ИБ эсперте?
 #11 Офигевший 25.04.06 15:16:39

CHARACTER SET WIN1251

эту фигню надо вынести в самое начало сценария.
 #12 Паша © 25.04.06 16:00:09

так, с check-ом разобралсо. и даже фурычит!


> ты все руками пишеш или в ИБ эсперте?

руками пускай пишет кто-нить другой. у меня порядка 300 табличек, так я до пенсии эту муру писать буду, как думешь? программно, конвертор написал, делов
 #13 Deep © 11.05.06 10:59:54

Рекомендую делать вот так:

CREATE DOMAIN BOOLEAN AS Integer DEFAULT 0 NOT NULL
CHECK (VALUE IN(0, 1))

причем домен назвать именно BOOLEAN. В будущем можеит пригодится, если будешь работать с FIB~ами (компоненты такие под Firebird/Interbase). Эти компоненты эмулируют работу с полями такого домена именно как с булевскими.




  • Написать ответ

    Имя: Регистрация HTML?
    smiles смайлики
    Потом перейти в:    
    паутина



      ©  webest.net, 2002-2007  

    top.mail.ru
    » Бесплатный счетчик посещений
    » Рейтинг сайтов