Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.49 MB
Время: 0.019 c
1-79719
alextov
2004-02-12 16:25
2004.02.25
Не получается сделать форму шире экрана


1-79744
CacoDemon
2004-02-12 10:49
2004.02.25
Можно ли в RichEdit...


6-80057
Cr@$h
2003-12-19 10:29
2004.02.25
Особенности использования packet32.dll in win2k


8-80044
Демон
2003-10-24 23:36
2004.02.25
Плейлист


1-79956
Daniel
2004-02-14 13:47
2004.02.25
Свойство Align у TFrame