IPB
ЛогинПароль:

> ВНИМАНИЕ!

Прежде чем задать вопрос, смотрите FAQ.
Рекомендуем загрузить DRKB.

 
 Ответить  Открыть новую тему 
> Создание таблиц Sql, Как задать значени по Default
YurKaluga
сообщение 2.09.2005 11:10
Сообщение #1


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Проблема вот в чем - создаю таблицу с помощью Query:
Код

 Query1.SQL.Text:='Create table Teams '+
                 '(Code            Autoinc,'+
                 ' Name            character(50),'+
                 ' Country         SmallInt DEFAULT 1,'+
                 ' City            SmallInt,'+
                 ' Trainer         character(150),'+
                 ' Glasses         SmallInt DEFAULT 0,'+
                 ' Primary Key (Code))';
 Query1.ExecSQL;

Таблица создается, но значения по-умолчанию не цепляются. :fire:
Почему?
Может знаете?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 5.09.2005 8:19
Сообщение #2


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


У каждой БД свой диалект SQL. Что у тебя за БД?


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 7.09.2005 9:56
Сообщение #3


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Я из Delphi пытаюсь создать таблицу Paradox для BDE.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 7.09.2005 10:18
Сообщение #4


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Попробуй значения по умолчанию поставить в одинарные кавычки:
Код
default '0';

Может поможет.

PS: Смотри справку localSQL.hlp в каталоге где стоит BDE.

Сообщение отредактировано: hiv - 7.09.2005 10:46


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 7.09.2005 14:13
Сообщение #5


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Ну, как бы в кавычки я могу взять только в двойные - проскакивает без ошибок, но не помогает. А в хелпе про это ни слова!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 7.09.2005 14:44
Сообщение #6


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Матчасть учить надо: во всех паскалях от борланд в том числе и в Delphi пишется так
writeln('You''ll'); \\ это будет You'll


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 7.09.2005 15:06
Сообщение #7


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Я и говорю, двойные кавычки не помогают. Сам попробуй! Может разница в BDE?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 7.09.2005 15:10
Сообщение #8


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


В одинарных пробуй (внимательнее мой предыдущий пост посмотри)


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 7.09.2005 15:22
Сообщение #9


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Да пробовал я. В нете еще встречается конструкция типа NOT NULL перед DEFAULT, оно обязательно?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 7.09.2005 17:30
Сообщение #10


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


обычно конечно их вместе используют. попробуй, но наверно дело не в этом.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 8.09.2005 10:49
Сообщение #11


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Да не выходит каменный цветок!!!
angry.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 8.09.2005 11:23
Сообщение #12


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Выложи исходники - я попробую помучиться...
ЗЫ: Наверное все программисты отчасти мазохисты. smile.gif


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 9.09.2005 10:33
Сообщение #13


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Да, собственно, весь исходник в первом сообщении.
Таблица создается. Потом я смотрю ее структуру в Database Desktop. Там есть окошко Default value, куда можно вписать значение по умолчанию для каждого поля. Но оно пустое.
При создании таблицы в Database Desktop в это поле вписываешь значение и оно запоминается где-то. При вставке новой записи в таблицу эти значения подставляются автоматически. То же самое мне нужно сделать программно.
У меня в базе есть таблицы с кучей полей, и при вставке новой записи как-то не хочется прописывать их значения - макаронный код получается.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 9.09.2005 11:03
Сообщение #14


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Я с BDE давно не работаю - и как ты создаешь свою БД не знаю. Одного SQL запроса там мало - шли исходники полностью - тогда буду смотреть...


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 9.09.2005 11:42
Сообщение #15


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Цитата(hiv @ 9.09.05 12:03)
шли исходники полностью - тогда буду смотреть...

А исходники чего нужны? Я что-то не пойму. Мне же нужно всего-то - разобраться, как создавать таблицу.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 9.09.2005 12:08
Сообщение #16


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Так ты говоришь что этим SQL скриптом ты ее создал. У меня просто так не создается, нужно либо альясы прописывать, либо еще какие-то телодвижения делать чтобы файл с таблицей создавать. Как делаешь ты - я не знаю. У меня пока файл парадокса создать не удается. Только DBASE DBF.


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 9.09.2005 13:22
Сообщение #17


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Код

 Query1.DatabaseName:=ExtractFilePath(Application.ExeName);
 Query1.SQL.Text:='Create table Teams '+
                 '(Code            Autoinc,'+
                 ' Condition       character(1),'+
                 ' FullName        character(200),'+
                 ' Name            character(50),'+
                 ' Country         SmallInt default 1,'+
                 ' City            SmallInt,'+
                 ' Chief           character(150),'+
                 ' Trainer         character(150),'+
                 ' Memo            Blob(200,1),'+
                 ' Glasses         SmallInt default 0,'+
                 ' Primary Key (Code))';
 Query1.ExecSQL;


На сколько я помню, файл Paradox создается по-умолчанию (поэтому я не указываю расширение после имени таблицы), а чтобы создался DBASE нужно как-то по другому объявлять имя.
Вместо Alias я обычно использую DatabaseName, так проще - не нужно после создания базы прописывать псевдонимы. Установил на другую машину, указал путь к базе и все... Плюй в потолок.
А делаю я следующее: бросаю на пустую форму TQuery & TButton и в обработчике нажатия кнопки пишу этот код. Никакие св-ва у компонентов не меняю. Судя по всяким help'ам все должно работать. В принципе и не ругается. Но и не делает того, что обещано
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
hiv
сообщение 9.09.2005 15:00
Сообщение #18


Профи
****

Группа: Пользователи
Сообщений: 660
Пол: Мужской
Реальное имя: Михаил

Репутация: -  11  +


Блин изврат какой.... не получается... там даже не все определения ALTER TABLE есть... Выкинь BDE и работай с нормальными СУБД (хотябы Interbase, Firebird). Там для создания БД нужно просто скриптик запустить или команду дать (что из Дельфей тоже можно сделать через WinExec)


--------------------
Никогда не жадничай. Свои проблемы с любовью дари людям!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
YurKaluga
сообщение 9.09.2005 15:18
Сообщение #19


Пионер
**

Группа: Пользователи
Сообщений: 53
Пол: Мужской

Репутация: -  0  +


Да фигня в том, что программа уже написана, база готова. Я сначала делал копирование эталонных таблиц, но при копировании куда-то деваются индексы, т.е. поле есть, написано, что оно индексное, а индексов нет. А еще неудобно за собой таскать папку с эталонами. Поэтому и решил таблички создавать из программы. А переписывать на другую СУБД уже поздно - в программе одних форм уже штук 40 и почти на каждой есть Query или Table и не по-одной.
Плюс, программа работает с локальной БД, так что ставить вместе с ней что-то серьезное не серьезно. Есть конечно задумка переписать на сервер, но неохота - слишком много лопатить прийдется.
Ладно, спасибо за возню со мной. Буду думать что-нибудь еще.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 9.07.2025 0:06
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"