Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Вниз

Подскажите можно ли из DBGrid-а узнать какую таблицу он отражает?   Найти похожие ветки 

 
Lamer666   (2007-01-08 01:53) [0]

ПРИВЕТ НАРОД! ВСЕМ РЕСПЕКТ!!!
Подскажите можно ли из DBGrid-а узнать какую таблицу он отражает?
ADOConnection->ADOQuery->DataSourese->DBGrid


 
sniknik ©   (2007-01-08 01:59) [1]

через раз, чаще всего нельзя, хотябы попросту потому, что отображается view или процедура, или вообще не связанный с базой рекордсет.


 
Lamer666   (2007-01-08 02:02) [2]

А из Query который поставляет данный в DBGrid?


 
Германн ©   (2007-01-08 02:07) [3]


> Lamer666   (08.01.07 02:02) [2]
>
> А из Query который поставляет данный в DBGrid?
>

А что Query всегда связан с одной таблицей?


 
sniknik ©   (2007-01-08 02:10) [4]

а какая разница? запрос он и есть запрос, и он только в крайне малом количестве случаев прямое отражение таблицы.
гарантировано только для ADO в случае с типом команды = cmdTable/cmdDirectTable можно узнать.


 
Lamer666   (2007-01-08 02:14) [5]


> А что Query всегда связан с одной таблицей?

Логично!!!!


 
Lamer666   (2007-01-08 02:15) [6]

Ну ХОРОШО, натом СПАСИБО!


 
MsGuns ©   (2007-01-08 16:45) [7]

Можно узнать КАКИМ ОБРАЗОМ получен датасет, проанализировав TDBGrid.DataSource.DataSet.
Для этого нужно сначала определить какого он класса (используя св-во ClassType или ClassName).
Если это TXXTable, то, в зависимости от типа компоненты доступа, можно "вытащить" и имя таблицы.
Если не TXXTable, то "вытащить" текст запроса (св-во SQL, CommandText или другие).
Затем полученный текст просканировать в поисках того, что стоит за Select  From. Если запрос простой, то, как правило, то, что стоит за выражением From до первого пробела и есть имя таблицы (таблиц) или ХП(функции, представления и т.д.).
Далее просто. Полученное имя ищем среди списка таблиц БД, котороый легко получить. Если нашли, то это и есть та самая таблица

Хотя, в общем случае, это сделать весьма затруднительно, иногда невозможно. Да и не нужно это.
Есть предположение, что ы хотите написать некоторый универсальный код, который сможет работать с любым НД и которому передается не датасет, а собственно грид.
В этом случае Вам не нужно знать имя таблицы. Достаточно иметь лишь указатель на датасет для того, чтобы управлять им (поиски, сортировки, фильтры и т.д.)


 
Lamer666   (2007-01-08 19:52) [8]

ТАК И СДЕЛАЛ, УВАЖАЕМЫЙ!!!! РЕСПЕКТ!



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.04.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.035 c
2-1173696204
ANB
2007-03-12 13:43
2007.04.01
Как из делфового TWebBrowser текст HTML документа вытащить ?


2-1173869504
T.V
2007-03-14 13:51
2007.04.01
Вопрос по ф-ции LockFile


8-1152596059
zorik
2006-07-11 09:34
2007.04.01
Линии разных стилей толщиной более 1 пиксела


4-1163501617
novill
2006-11-14 13:53
2007.04.01
Как программно нажать (Num,Caps,Scroll)Lock?


2-1173868777
Student1000
2007-03-14 13:39
2007.04.01
опять картинки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский