Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Узнать наличие столбца в таблице / 21 сообщений из 21, страница 1 из 1
11.08.2003, 09:23
    #32232462
Oleg K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
Привет всем,

Как узнать, есть ли в таблице заданный столбец или нет?
т.е. есть ли в Акцесе что-либо похожее на системные таблицы типа Sysobjects (MS SQL)?

P.S. Варианты типа TRY .... EXCEPTION .... END - не интересны

С уважением,
Олег К.
г. Хабаровск
...
Рейтинг: 0 / 0
11.08.2003, 09:39
    #32232478
Geen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
А варианты типа
SELECT * FROM MyTable
не подходят?:)

Geen
...
Рейтинг: 0 / 0
11.08.2003, 09:47
    #32232486
Oleg K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
и что это дает ????

Вопрос был о имени столбца, а не о его содержимом.

Олег К.
...
Рейтинг: 0 / 0
11.08.2003, 10:00
    #32232501
sasha_1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
можно так:
Код: plaintext
1.
2.
for each f in TableDef( "table" ).Fields
 if f.name= "FieldName"  then <есть такое поле>
next f
...
Рейтинг: 0 / 0
11.08.2003, 10:04
    #32232506
Oleg K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
4 Sasha_1

Этот вариант крайняя мера, я его держу в запасе.

НО ВСЕ ЖЕ !!!
Где-то же должна храниться информация о структурах таблиц !!!
Меня именнно это интересует.

Сложно с MSSQL слазить на Access :(

Олег К.
...
Рейтинг: 0 / 0
11.08.2003, 16:02
    #32233034
Geo
Geo
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
CurrentDb.TableDefs("aaaaa").Fields("bbbb").Name
Если нет таблицы или столбца - сгенерится ошибка.
...
Рейтинг: 0 / 0
11.08.2003, 18:15
    #32233243
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
Если включить "Сервис"-"Параметры"-"Вид"-"Показывать системные объекты", то появятся системные таблицы (MSys*). Видимо, таблицы, столбцы и пр. описаны в таблице MSysObjects.

P.S. А SQLColums() работает на SQL Server и Access почти одинаково...
...
Рейтинг: 0 / 0
11.08.2003, 18:27
    #32233258
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
...
Рейтинг: 0 / 0
11.08.2003, 18:50
    #32233297
Узнать наличие столбца в таблице
IMHO-В MSysObjects инфо о полях таблиц не содержится
...
Рейтинг: 0 / 0
11.08.2003, 18:57
    #32233302
Узнать наличие столбца в таблице
А почему не попробовать обратиться к полки таблицы запросом SQL (само собой через Execute(), спасибо что научили), а затем обработать ошибку соответвующим образом?
...
Рейтинг: 0 / 0
11.08.2003, 19:01
    #32233306
Узнать наличие столбца в таблице
Имелся ввиду код приведенный выше Geen + как обработka ошибки
...
Рейтинг: 0 / 0
11.08.2003, 19:05
    #32233309
Узнать наличие столбца в таблице
Тфу, твою м***ь, че я седня такой карявый?!
Короче пишешь виражение "SELECT Field1, Field2, POLE_KOTOROGO_MOZHET_NE-BIT FROM myTable" + обработка ошибок
Извиняюсь за лишний мусор, устал на работе.
...
Рейтинг: 0 / 0
11.08.2003, 20:13
    #32233363
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
Хамский Шкет
IMHO-В MSysObjects инфо о полях таблиц не содержится
Ты прав... я погорячился, там в явном виде только имена таблиц (запросов), полей нет, индексов тоже.

вадя
У меня твоя ссылка ведёт в никуда.
...
Рейтинг: 0 / 0
11.08.2003, 21:09
    #32233389
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
исправляюсь
http://www.sql.ru/articles/mssql/MS_sqlctrs_users#MS_sqlctrs_users
...
Рейтинг: 0 / 0
11.08.2003, 22:33
    #32233414
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
точно ...

это из рассыло SQL называется не докуметтированныйSQL автор Glory

это с SQL.ru

если надо скину на мыло
...
Рейтинг: 0 / 0
12.08.2003, 02:56
    #32233449
Oleg K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
4 Вадя - скинь плиз на Delphi4U@mail.ru
4 Ой Вэй - сэнк за подсказку


Все опять сводится к обработке ошибок....
Я же писал - это КРАЙНИЙ метод, о нем я отлично знаю.

Все же - ведь должна же где-то храниться информация о структуре БД, наличии колонок и т.п.
В системных таблицах вроде ничего стоящего нет, а может всех таблиц он и не покажет?
...
Рейтинг: 0 / 0
12.08.2003, 12:42
    #32233900
Ой Вэй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
2вадя ничего не изменилось, HTTP 404.

2Oleg K
4 Ой Вэй - сэнк за подсказку
Получается, не за что...

Все же - ведь должна же где-то храниться информация о структуре БД, наличии колонок и т.п.
В системных таблицах вроде ничего стоящего нет, а может всех таблиц он и не покажет?

Она там наверняка хранится, я думаю всё в той же MSysObjects в OLE полях, которые у меня не просматриваются (Lv*).

Все опять сводится к обработке ошибок....
Не всё.
Разработчик БД не обязан тебе рассказывать, как у него всё устроено. Это его ноухау. Он обязан написать ODBC драйвер и реализовать функцию SQLColumns().

Хотя если ты не обращаешься через ODBC, то тебе это будет неудобно...
А как ты обращаешься к SQL Server и к Access, одинаково?
...
Рейтинг: 0 / 0
12.08.2003, 13:40
    #32234017
mahoune
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
А так не подойдет?
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
  Dim dbs As Database, tdf As TableDef, fld As Field

  Set dbs = CurrentDb
  Set tdf = dbs.TableDefs( "MyTableName" )

  For Each fld In tdf.Fields
    MsgBox fld.Name
  Next fld
...
Рейтинг: 0 / 0
13.08.2003, 11:49
    #32235119
вадя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
сегодня вечером скину
...
Рейтинг: 0 / 0
14.08.2003, 08:59
    #32236072
Oleg K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
4 Ой Вэй
>>А как ты обращаешься к SQL Server и к Access, одинаково?
Я обращаюсь через TAdoConnection

4 All
Всем спасибо за участие....

Понял что такой возможности нет - и что Access это не MSSQL :))
Буду на клиенте (Delphi) делать проверку...
...
Рейтинг: 0 / 0
14.08.2003, 11:39
    #32236306
eGorka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Узнать наличие столбца в таблице
Можно еще попробовать поковырять ч/з
CurrentProject.Connection.OpenSchema(adSchemaColumns)
...
Рейтинг: 0 / 0
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Узнать наличие столбца в таблице / 21 сообщений из 21, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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