Текущий архив: 2004.02.25;
Скачать: CL | DM;
ВнизПолучить имя таблицы для поля в 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;
Скачать: CL | DM;
Память: 0.47 MB
Время: 0.035 c