Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Informix [игнор отключен] [закрыт для гостей] / проверка существования таблицы / 11 сообщений из 11, страница 1 из 1
23.05.2010, 03:52
    #36643618
Uwannadie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
пишу програмку на делфи
в ней данные обрабатываются и по-идее должны добавляться в таблицу.
соответственно нужна проверка, существует ли таблица в базе или нет.
отлавливать эксепшены в делфях не вариант.
посему хотелось бы узнать, можно ли каким-либо способом узнать, существуе ли таблица.
способ
Код: plaintext
create if not exists
не катит :(
собна код создания таблицы
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
create table stations (
    usaf INT default  0  not null,
    wban INT default  99999  not null,
    station_name CHAR( 40 ) not null,
    longtitude INT default  0  not null,
    latitude INT not null,
    elevation INT not null
); 
...
Рейтинг: 0 / 0
23.05.2010, 18:12
    #36644022
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
Uwannadie
отлавливать эксепшены в делфях не вариант.
почему?????????????????????????????????????????????????????????????????

select 1 from systables where tabname = 'stations'

select count(*) from systables where tabname = 'stations'
...
Рейтинг: 0 / 0
23.05.2010, 18:20
    #36644030
Uwannadie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
отлавливать не вариант, потому что таблицы создаются в цикле, после парсинга файла, причем каждая со своим именем. и таких таблиц может быть несколько сотен
...
Рейтинг: 0 / 0
23.05.2010, 18:21
    #36644032
Uwannadie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
п.с. пишет, что в выражениях ошибка синтаксиса.
п.п.с. забыл сказать. стоит IDS 11.5
...
Рейтинг: 0 / 0
23.05.2010, 18:29
    #36644038
Uwannadie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
хм, отдельно строчка пашет =\
подскажите как прикрутить ее к созданию таблицы
...
Рейтинг: 0 / 0
23.05.2010, 19:24
    #36644077
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
Uwannadieотлавливать не вариант, потому что таблицы создаются в цикле, после парсинга файла, причем каждая со своим именем. и таких таблиц может быть несколько сотенничего не понял, рассказывайте все, с самого начала, типа: Вначале было слово ....
...
Рейтинг: 0 / 0
23.05.2010, 19:47
    #36644096
Uwannadie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
в общем ситуация такая:
имеем фпт сервер где-то за бугром.
с этого сервера стягиваем по фтп архив
распаковываем архив
парсим полученный файлик
коннектимся к базе
!!тут запарка => проверяем наличие таблицы (имя таблицы=уникальный номер в другом файле)
если таблица есть то просто добавляем в нее данные из файла
иначе создаем таблицу и добавляем данные

это все в цикле. файлов может быть очень много.
...
Рейтинг: 0 / 0
24.05.2010, 03:15
    #36644445
Выбегалло
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
Uwannadieхм, отдельно строчка пашет =\
подскажите как прикрутить ее к созданию таблицы

ну как прикрутить ? С помощью оператора IF, знаете такой ?
выполняете select на таблице systables, вам там 2 варианта набросали, и проверяете его значение .
IF > 0 то таблица уже существует, ELSE CREATE TABLE.
...
Рейтинг: 0 / 0
24.05.2010, 11:05
    #36644758
zaiets
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
Uwannadie
файлов может быть очень много.


Учитывайте:
| Maximum tables per Dynamic Server system | 477,102,080
...
Рейтинг: 0 / 0
24.05.2010, 15:50
    #36645518
Uwannadie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
ну не настолько много...
максимум на что рассчитываю это около 2к
...
Рейтинг: 0 / 0
24.05.2010, 17:40
    #36645881
Uwannadie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проверка существования таблицы
посидел подумал чуток. в общем получилось нечто такое:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
dbConnection.Connected := True;
  with dbCommand do
  begin
    CommandText := 'select * from systables where tabname = ''stations''';
    if Execute.RecordCount =  0  then
    begin
      with dbQuery do
      begin
        SQL.Clear;     
        SQL.Add('CREATE TABLE stations (');
        SQL.Add('usaf INT default 0 not null,');
        SQL.Add('wban INT default 99999 not null,');
        SQL.Add('station_name CHAR(40) not null,');
        SQL.Add('longtitude INT default 0 not null,');
        SQL.Add('latitude INT not null,');
        SQL.Add('elevation INT not null);');
        ExecSQL;
      end;
    end;
  end;
...
Рейтинг: 0 / 0
Форумы / Informix [игнор отключен] [закрыт для гостей] / проверка существования таблицы / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]