powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Informix [игнор отключен] [закрыт для гостей] / проверка существования таблицы
11 сообщений из 11, страница 1 из 1
проверка существования таблицы
    #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
проверка существования таблицы
    #36644022
Фотография Журавлев Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Uwannadie
отлавливать эксепшены в делфях не вариант.
почему?????????????????????????????????????????????????????????????????

select 1 from systables where tabname = 'stations'

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

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

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


Учитывайте:
| Maximum tables per Dynamic Server system | 477,102,080
...
Рейтинг: 0 / 0
проверка существования таблицы
    #36645518
Uwannadie
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну не настолько много...
максимум на что рассчитываю это около 2к
...
Рейтинг: 0 / 0
проверка существования таблицы
    #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
11 сообщений из 11, страница 1 из 1
Форумы / Informix [игнор отключен] [закрыт для гостей] / проверка существования таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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