Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 17.11.2014, 18:36   #1
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию Проверить столбец

Как проверить что столбец с определенным именем существует
на Absolute Database
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 17.11.2014, 20:17   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Если там есть возможность получить список колонок и пройтись по нему в цикле то именно так. Это же имеется ввиду на клиенте или в ХП какой-нибудь?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2014, 09:04   #3
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Ну да, точно, спасибо
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 20.11.2014, 09:27   #4
Михаил Юрьевич
Форумчанин
 
Аватар для Михаил Юрьевич
 
Регистрация: 25.12.2007
Сообщений: 655
По умолчанию

Пошел таким путем


Код:
Try
сдесь делаю запрос к столбцу:  СТОЛБЕЦ1
  Except
сдесь создаю столбец  СТОЛБЕЦ1
  end;
Есть в этом здравый смысл, или могут быть какие последствия в работе программы?
За частые поиски был забанен во всех известных
поисковых системах!
Михаил Юрьевич вне форума Ответить с цитированием
Старый 20.11.2014, 09:45   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
Есть в этом здравый смысл, или могут быть какие последствия в работе программы?
Не вижу тут здравого смысла. Уж если делать запросом то :
1) К системной таблице, которая обслуживает БД
2) select * from Таблица where 1<>1 - даст тупо список полей без данных.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.11.2014, 09:48   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Какой смысл динамического изменения структуры таблицы? На 100% это не правильный подход к организации базы данных
Цитата:
сдесь делаю запрос к столбцу: СТОЛБЕЦ1
Исключение может подняться не только от отсутствия столбца
Цитата:
сдесь создаю столбец СТОЛБЕЦ1
Здесь тоже есть вероятность ошибки
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.11.2014, 12:30   #7
Toxa
Форумчанин Подтвердите свой е-майл
 
Аватар для Toxa
 
Регистрация: 01.12.2006
Сообщений: 516
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Какой смысл динамического изменения структуры таблицы? На 100% это не правильный подход к организации базы данных
может пригодиться для заливки обновлений, когда не знаешь была ли создана колонка
Пишу на Delphi за еду
Toxa вне форума Ответить с цитированием
Старый 20.11.2014, 13:59   #8
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Цитата:
может пригодиться для заливки обновлений, когда не знаешь была ли создана колонка
У самого такая система. Данные хранятся в MS Access. И тоже при разработке новой версии программы появляется потребность в еще одном столбце. Следовательно, чтобы клиенту не терять данные из предыдущей версии, приходит программно добавлять столбец в старую базу.

Поэтому не вижу ничего неправильного в этом подходе.

Проверку произвожу циклом по существующим полям, и если false, то уже идет добавление. Но ни как не этим:

Код:
Try
сдесь делаю запрос к столбцу:  СТОЛБЕЦ1
  Except
сдесь создаю столбец  СТОЛБЕЦ1
  end;
Этот подход считаю неразумным.
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Старый 20.11.2014, 14:33   #9
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Поэтому не вижу ничего неправильного в этом подходе.
Накатить новую базу без данных, из старой данные перекачать, старую грохнуть, новую переименовать, все программно. Не вариант?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 20.11.2014, 14:51   #10
grominfo
Форумчанин
 
Аватар для grominfo
 
Регистрация: 30.05.2011
Сообщений: 651
По умолчанию

Цитата:
Накатить новую базу без данных, из старой данные перекачать, старую грохнуть, новую переименовать, все программно. Не вариант?
По вашему, этот способ более правильный, чем просто программно добавить новое поле?
Создание, программирование и сопровождение сайтов любой сложности.
Изготовление программ на заказ.
Список услуг и портфолио на сайте www.andreygrom.ru
grominfo вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
дана матрица, заменить 1 столбец столбцом с минимальной суммой элементов, последний столбец заменить столбцом Anonim41 Паскаль, Turbo Pascal, PascalABC.NET 0 24.06.2014 21:11
проверить столбец на пустоту Blame Microsoft Office Excel 4 05.06.2012 03:32
Ошибка. НЕ МОГУ ВСТАВИТЬ столбец В ЗАДАЧУ КОТОРАЯ ВЫВЕДЕТ СТОЛБЕЦ ИЗ ЕДИНИЦ ПОСЛЕ ЧИСЛА к. Диас_ Паскаль, Turbo Pascal, PascalABC.NET 1 14.06.2011 18:49
Как проверить существует ли уже столбец в БД wadzik SQL, базы данных 1 22.09.2009 13:46
макрос который будет копировать столбец А из закрытой книги Данные, и вставлять в книгу Сток в столбец B Utirka66 Microsoft Office Excel 8 06.07.2009 09:53