powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как программно узнать поля таблицы Sybase ASE +
5 сообщений из 5, страница 1 из 1
как программно узнать поля таблицы Sybase ASE +
    #37207195
humpty1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
раньше в Сайбейзе АСА, АйКю и МС СКЛ нашел как программно узнать
поля таблицы

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
#if MSSQL
          statement = "select TABLE_SCHEMA, TABLE_NAME, COLUMN_NAME,"
                      + (accuracy == 0 ? "" : " ORDINAL_POSITION, COLUMN_DEFAULT, IS_NULLABLE,")
                      + " DATA_TYPE"
                      + (accuracy == 0 ? "" : ", CHARACTER_MAXIMUM_LENGTH, CHARACTER_OCTET_LENGTH")
                      + " from INFORMATION_SCHEMA.COLUMNS "
                      + (param == null ? "" : (" where TABLE_NAME = '" + param + "'"))
                      + (owner == null ? "" : (" and TABLE_SCHEMA = '" + owner + "'"))
                      + " order by LOWER(TABLE_SCHEMA), LOWER(TABLE_NAME), LOWER(COLUMN_NAME)";
#else
      statement = @"";     
           statement =  "SELECT creator, tname, " +
                         "cname,  "+
                             (accuracy == 0 ? " " : "colno, ")+ 
                                (accuracy == 0 ?" ":"default_value, nulls, ")+
                                  "coltype " +
                                     (accuracy == 0 ? " " : ", length ")+
                              "  FROM sys.SysColumns where creator not in"+
                                         " ('SYS','dbo','DBA','rs_systabgroup') " +
                      (owner==null?"":(" and creator = '"+owner+"'"  )) +
                      (param==null?"":(" and tname = '"+param+"'"  )) +
                                   " order by LOWER(creator), LOWER(tname), LOWER(cname)";
#endif


но в ASE оказалось по другому.
dbo.syscolumns, по видимому, содержит не все, что надо

Куда еще смотреть?
...
Рейтинг: 0 / 0
как программно узнать поля таблицы Sybase ASE +
    #37207280
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
humpty1но в ASE оказалось по другому.
dbo.syscolumns, по видимому, содержит не все, что надоА чего тебе не хватает?
Обычно выборки из sysobjects+syscolumn полностью хватает.
А вообще, зачем это все? Ты же все равно используешь какой-то универсальный интерфейс (ODBC, ADO и тп) раз работаешь из одного приложения с несколькими базами. Ну и пользуйся встроенными в интерфейсы средставми, они будут и универсальны и надежны и самостоятельно разбираться с типом базы не нужно будет.
...
Рейтинг: 0 / 0
как программно узнать поля таблицы Sybase ASE +
    #37210009
Imperous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я себе на такой случай сделал это
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
create proc sys_info_table @tab varchar( 30 )
as
select sc.name as fields, st.name as type
from sysobjects s 
left join syscolumns sc
    left join systypes st
    on sc.usertype = st.usertype
on s.id = sc.id
where s.type = 'U' and upper(ltrim(rtrim(s.name))) = upper(ltrim(rtrim(@tab)))
go 
...
Рейтинг: 0 / 0
как программно узнать поля таблицы Sybase ASE +
    #37210495
humpty1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо
White Owlhumpty1но в ASE оказалось по другому.
dbo.syscolumns, по видимому, содержит не все, что надоА чего тебе не хватает?
Обычно выборки из sysobjects+syscolumn полностью хватает.
А вообще, зачем это все? Ты же все равно используешь какой-то универсальный интерфейс (ODBC, ADO и тп) раз работаешь из одного приложения с несколькими базами. Ну и пользуйся встроенными в интерфейсы средставми, они будут и универсальны и надежны и самостоятельно разбираться с типом базы не нужно будет.
имени таблицы не хватало без
Код: plaintext
sysobjects s  join syscolumns sc

авторпользуйся встроенными в интерфейсы средставми,
если не лень, можно ткнуть пальцем во встроенное в ADO средство
...
Рейтинг: 0 / 0
как программно узнать поля таблицы Sybase ASE +
    #37210663
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
humpty1авторпользуйся встроенными в интерфейсы средставми,
если не лень, можно ткнуть пальцем во встроенное в ADO средство
http://msdn.microsoft.com/en-us/library/ms677200%28v=vs.85%29.aspx
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / как программно узнать поля таблицы Sybase ASE +
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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