powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / Узнать наличие столбца в таблице
21 сообщений из 21, страница 1 из 1
Узнать наличие столбца в таблице
    #32232462
Фотография Oleg K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет всем,

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

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

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

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

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

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

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

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

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

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

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

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

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

это с SQL.ru

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


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

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

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

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

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

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

Хотя если ты не обращаешься через ODBC, то тебе это будет неудобно...
А как ты обращаешься к SQL Server и к Access, одинаково?
...
Рейтинг: 0 / 0
Узнать наличие столбца в таблице
    #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
Узнать наличие столбца в таблице
    #32235119
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сегодня вечером скину
...
Рейтинг: 0 / 0
Узнать наличие столбца в таблице
    #32236072
Фотография Oleg K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
4 Ой Вэй
>>А как ты обращаешься к SQL Server и к Access, одинаково?
Я обращаюсь через TAdoConnection

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

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


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