Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Горячая тема (более 10 ответов) Структура таблицы если она пустая (число прочтений - 3501 )
zenik
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 109
Зарегистрирован: 09. Октября 2007
Структура таблицы если она пустая
09. Октября 2007 :: 10:12
Печать  
Если в таблице есть данные, то все понятно... А вот если таблица в БД пустая, то и ответ на SELECT * тоже пустой. Вопрос вот в чем: как получить структуру (список полей) в таблице, если в ней нет никаких данных? Или 1с++ тут не поможет?

з.ы. Чуть не забыл... Запрос выполняется через ВыполнитьИнструкцию()
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Структура таблицы если она пустая
Ответ #1 - 09. Октября 2007 :: 10:22
Печать  
zenik писал(а) 09. Октября 2007 :: 10:12:
Если в таблице есть данные, то все понятно... А вот если таблица в БД пустая, то и ответ на SELECT * тоже пустой. Вопрос вот в чем: как получить структуру (список полей) в таблице, если в ней нет никаких данных? Или 1с++ тут не поможет?

з.ы. Чуть не забыл... Запрос выполняется через ВыполнитьИнструкцию()


По идее тебе должна вернутся таблица без строк но с колонками
  
Наверх
ICQ  
IP записан
 
zenik
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 109
Зарегистрирован: 09. Октября 2007
Re: Структура таблицы если она пустая
Ответ #2 - 09. Октября 2007 :: 10:29
Печать  
Nick писал(а) 09. Октября 2007 :: 10:22:
По идее тебе должна вернутся таблица без строк но с колонками

Фиг вам - жилище такое у индейцев есть (ц) простоквашино.

Сразу хочу оговорится делал через OLEDBData... потому как, через ODBCDataBase коннект установить не смог... Попутный вопрос - почему? Строка подключения одна и таже, полученная через: ADODB.Connection - окошко открывает для выбора параметров (аки прям через UDL)

Получал следующие результаты: Если данные есть, то и ТЗ заполнена соответствующе, а вот если таблица БД пустая, то и ТЗ совершенно пустая Печаль

Через ADO гемороится не хотел... хочу как проще  Класс
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Структура таблицы если она пустая
Ответ #3 - 09. Октября 2007 :: 10:40
Печать  
попробуй Метаданные + MetaDataWork
  
Наверх
IP записан
 
zenik
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 109
Зарегистрирован: 09. Октября 2007
Re: Структура таблицы если она пустая
Ответ #4 - 09. Октября 2007 :: 10:44
Печать  
Цитата:
попробуй Метаданные + MetaDataWork


Непойдет... Запрос делается не на БД 1с... 1с должна обращаться к левой БД и получать-писать данные.
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Структура таблицы если она пустая
Ответ #5 - 09. Октября 2007 :: 10:52
Печать  
БД на том же сервере, что и база 1С?
  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
zenik
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 109
Зарегистрирован: 09. Октября 2007
Re: Структура таблицы если она пустая
Ответ #6 - 09. Октября 2007 :: 10:57
Печать  
berezdetsky писал(а) 09. Октября 2007 :: 10:52:
БД на том же сервере, что и база 1С?

Пока да... Но все может изменится
  
Наверх
 
IP записан
 
berezdetsky
1c++ power user
Отсутствует


barba non facit sisadminum

Сообщений: 1986
Местоположение: Москва
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Структура таблицы если она пустая
Ответ #7 - 09. Октября 2007 :: 11:19
Печать  
Пока да, таблицу значений с колонками можно получить через подключение 1С (ODBCRecordset).

тз = рс.ВыполнитьИнструкцию("select * from dbname.owner.tablename");

Когда они на разных серверах..
Можно использовать linked servers или ODBCDatabase.
Строка подключения для ODBCDatabase выглядит примерно так:
Код
Выбрать все
DRIVER=SQL Server;SERVER=IPorServerName;UID=UserName;PWD=password;DATABASE=DBName; 

  

пароль как коньяк, чем больше звездочек, тем лучше
Наверх
IP записан
 
zenik
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 109
Зарегистрирован: 09. Октября 2007
Re: Структура таблицы если она пустая
Ответ #8 - 09. Октября 2007 :: 11:43
Печать  
berezdetsky спасиб... выручил с ODBCDatabase, твоя строка подключения помогла.

А по поводу первого вопроса, я делал тоже самое... Просто оказалось, что моя обработка ТЗ.ERT не показывает пустые таблицы, а структура в ТЗ появлялась.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Структура таблицы если она пустая
Ответ #9 - 10. Октября 2007 :: 01:43
Печать  
zenik писал(а) 09. Октября 2007 :: 11:43:
berezdetsky спасиб... выручил с ODBCDatabase, твоя строка подключения помогла.

А по поводу первого вопроса, я делал тоже самое... Просто оказалось, что моя обработка ТЗ.ERT не показывает пустые таблицы, а структура в ТЗ появлялась.


Мда, а всего то надо было проверить второй пост  Подмигивание
  
Наверх
ICQ  
IP записан
 
Kapet
Senior Member
****
Отсутствует


Ламер - вансист

Сообщений: 262
Местоположение: Ukraine, Kyiv
Зарегистрирован: 27. Декабря 2006
Пол: Мужской
Re: Структура таблицы если она пустая
Ответ #10 - 16. Ноября 2007 :: 15:49
Печать  
ИМХО, тут классика рулит...

Получай колонки прямым запросом "select * from dbo.syscolumns where id = object_id(N'[dbo].["+ИмяТаблицы+"]')"

Если нужны данные по параметрам колонкок то смотри в другие системные таблицы sys* базы данных. Кстати, много интересного обнаружишь  Улыбка
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать