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

Вниз

Получить имя таблицы для поля в DBGrid   Найти похожие ветки 

 
sergvc   (2004-01-28 14:02) [0]

Подскажите пожалуйста, как можно определить название таблицы для поля TField в Grid или DataSet?


 
Reindeer Moss Eater   (2004-01-28 14:03) [1]

TTable(MyField.DataSet).TableName


 
sergvc   (2004-01-28 16:07) [2]

А если этот DataSet построен с помощью составного запроса Select * from Table1,Table2?


 
Sandman25   (2004-01-28 16:44) [3]

Origin


 
Reindeer Moss Eater   (2004-01-28 16:51) [4]

Он кажется только у экземпляров созданных в design time присутствует.


 
Sandman25   (2004-01-28 16:59) [5]

Возможно. Я никогда не использовал.


 
Sandman25   (2004-01-28 17:01) [6]

Если бы можно было автоматически определять, вряд ли было бы создано событие OnGetTableName у TDataSetProvider.


 
Reindeer Moss Eater   (2004-01-28 17:04) [7]

Интересно.

Для чего нужно вычислять имя таблицы из которой получено поле?
Что бы сформировать лету UpdateSQL для сформированного на лету SQL?

Вот когда понимаешь, зачем советуют имена полей в таблицах префиксировать именем таблицы.


 
Nikolay M.   (2004-01-28 17:07) [8]


> Sandman25 © (28.01.04 17:01) [6]
> Если бы можно было автоматически определять, вряд ли было
> бы создано событие OnGetTableName у TDataSetProvider.

Оно не для селектов, а для апдейтов и инсертов.


 
Sandman25   (2004-01-28 17:08) [9]

[7] Reindeer Moss Eater © (28.01.04 17:04)

Вы про create table ta_mytable ( ta_id INT, ta_descr CHAR(60)) или про select a.field101, b.field507 from a,b
или про select a.field101 a_field101, b.field507 b_field507 from a,b?


 
Sandman25   (2004-01-28 17:09) [10]

[8] Nikolay M. © (28.01.04 17:07)

Я понимаю :)


 
Reindeer Moss Eater   (2004-01-28 17:18) [11]

Я про префиксирование имен физических полей у физических таблиц в физической БД.
Впрочем не только полей, а любых объектов.


 
sergvc   (2004-01-29 12:02) [12]

Объсню: DbGrid заполняется даннымииз DataSet, который получает данные из хранимой процедуры.
Хранимая процедура имеет запрос вида:

SELECT T1.Field1,T2.Field2 FROM Table1 T1,Table2 T2 WHERE Table1.ID = Table2.ID

Теперь, когда я вызываю событие OnCellClick в DBGrid я хочу вызвать форму и в этой форме показать все записи из Table2.
Для этого мне надо знать имя таблицы, соответствующее полю, на котором я кликнул мышкой.


 
Sandman25   (2004-01-29 12:06) [13]

[11] Reindeer Moss Eater © (28.01.04 17:18)

Понятно.

[12] sergvc (29.01.04 12:02)

Сделайте
SELECT T1.Field1 T1_Field1, T2.Field2 T2_Field2 FROM Table1 T1,Table2 T2 WHERE Table1.ID = Table2.ID
Тогда из названия поля (в Query) можно будет вытащить имя таблицы.


 
sergvc   (2004-01-29 12:15) [14]

Наверное TADODataSet должен знать имя таблицы, потому, что он может обновлять данные, переданные через хранимую процедуру, в разных таблицах, использую предположения. Т.е. если в хранимой процедуре используется запрос вида

SELECT T1.Field1,T2.Field2 FROM Table1 T1,Table2 T2 WHERE Table1.ID = Table2.ID

а потом в DBGrid обновить поле Field2, то изменится именно поле Field2 в таблице Table2.



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

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

Наверх





Память: 0.47 MB
Время: 0.028 c
14-80265
Бзззер
2004-02-03 22:12
2004.02.25
Хелп! :)


1-79724
smolin
2004-02-12 11:21
2004.02.25
Функция перемещения файла


7-80303
наблюдатель
2003-12-07 18:17
2004.02.25
WM_ACTIVATE


1-79994
Oleg_
2004-02-13 13:47
2004.02.25
drowing not allowed


1-79765
zamkom
2004-02-11 15:04
2004.02.25
Вопрос про массив





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский