Текущий архив: 2007.05.13;
Скачать: CL | DM;
Вниз
Щелкаю по гриду и хочу узнать к какой таблице он привязан. Найти похожие ветки
← →
Drone (2007-03-14 13:04) [0]Подскажите пожалуйста,как же узнать?
← →
Сергей М. © (2007-03-14 13:08) [1]TSomeTableComponent(DBGrid.dataSource.DataSet).SomethingLikeTableName
← →
Drone (2007-03-14 13:13) [2]Попробую...На всякий случай-Спасибо!
← →
Drone (2007-03-14 13:22) [3]Дело вот в чем.Есть 3 грида.И один динамический запрос на удаление с параметрами "имя таблицы","значение поля"..Хочу чтобы запрос сам понимал,из какой таблицы я хочу удалить строку.Проблема в том чтобы достать имя таблицы к которой привязан грид по которому я щелкаю.Проясните пожалуйста...
← →
Сергей М. © (2007-03-14 13:30) [4]
> Проясните пожалуйста...
Что в [1] не понятно ?
← →
Drone (2007-03-14 13:32) [5]Кидать эту функцию на OnClick грида?
← →
Рамиль © (2007-03-14 13:37) [6]
> Drone (14.03.07 13:32) [5]
Да, будет выглядеть так
TSomeTableComponent(TDbGrid(Sender).dataSource.DataSet).SomethingLikeTableName
При условии если онклик откуда нибудь из другого места не вызывается (тогда надо предварительно проверить: Sender is TDBGrid)
← →
Kolan © (2007-03-14 13:38) [7]> Кидать эту функцию на OnClick грида?
Перевести в лингво Some и Something для начала..
← →
S@shka © (2007-03-14 13:46) [8]Позволю себе расшифровать....
)))
в случае использования IBX-компонент:
TIBTable(DBgrid1.DatoSource.Dataset).TableName
иначе вместо TIBTable и .TableName указать соответствующий класс и свойство объекта
← →
Drone (2007-03-14 13:52) [9]Все-работает!Спасибо всем!
← →
Drone (2007-03-14 13:57) [10]Теперь возник вопрос как в запрос кинуть параметр с именем таблицы...Знаю про методы TSession.getTableNames...Но как его использовать в связке с SQL SERVER 2K?
← →
Drone (2007-03-14 13:59) [11]И про Format тоже не понятно...
← →
Сергей М. © (2007-03-14 14:03) [12]
> Drone (14.03.07 13:57) [10]
> Drone (14.03.07 13:59) [11]
Справка - она для кого писана ?
← →
Ega23 © (2007-03-14 14:03) [13]А вот интересно, а что будет в случае вот такого запроса:
Select P.PersName, O.OrgName
from Persons P, Organisations O
where O.OrgID=P.OrgID
?
К какой таблице мы должны обратиться?
← →
Drone (2007-03-14 14:06) [14]Немного не понятно что ты имеешь в виду :)
← →
Сергей М. © (2007-03-14 14:07) [15]
> К какой таблице мы должны обратиться?
>
Что значит "должны" ?)
Что, кому и почемы "вы должны" - это вас нужно спросить, а не нас)
← →
Ega23 © (2007-03-14 14:22) [16]
> Что значит "должны" ?)
> Что, кому и почемы "вы должны" - это вас нужно спросить,
> а не нас)
Хорошо. К какой в таком случае таблице будет обращаться автор?
А такие выборки в сложных системах - сплошь и рядом.
← →
Сергей М. © (2007-03-14 14:25) [17]
> Ega23 © (14.03.07 14:22) [16]
>
>
Как это к какой ?
Разумеется, к Persons и Organizations, коль уж скоро они фигурируют в тексте запроса ...
← →
Ega23 © (2007-03-14 14:35) [18]
> Разумеется, к Persons и Organizations, коль уж скоро они
> фигурируют в тексте запроса ...
>
Мне не совсем понятно, как он про них узнает...
← →
Drone (2007-03-14 14:47) [19]Я работаю с гридами,у которых один источник данных
← →
Drone (2007-03-14 14:50) [20]Когда я формирую запрос на удаление записи из одной таблицы мне же не надо обращаться к другим :) :)
← →
Ega23 © (2007-03-14 14:53) [21]
> Я работаю с гридами,у которых один источник данных
>
Извини меня, источник данных в моём примере тоже один. Это какой-то из потомков TDataSet.
> Когда я формирую запрос на удаление записи из одной таблицы
> мне же не надо обращаться к другим :) :)
Я тебе показал вполне чёткий пример. Не знаю, как в твоих клиентах (может ты вместо организации её ID привык клиенту показывать. Или у тебя вообще до 1НФ денормализация доведена), но в моих такие запросы - сплошь и рядом.
И потом есть ещё такие вещи, как View и Stored Procedure.
← →
Reindeer Moss Eater © (2007-03-14 14:57) [22]В чем проблема-то?
Юзер сам на рантайме пишет запросы?
Наверное нет.
Запросы переключает программист.
А стало быть и без всякого грида знает какая у него в данный момент таблица в гриде отображается.
← →
Сергей М. © (2007-03-14 15:05) [23]
> Ega23 © (14.03.07 14:35) [18]
Простая "телепатия" (хоть и не склонен я к ней, бо дурно она пахнет зачастую) - у Автора дейтасурс ссылается на singletable-ориентированный DataSet-компонент.
← →
Ega23 © (2007-03-14 15:08) [24]
> Простая "телепатия" (хоть и не склонен я к ней, бо дурно
> она пахнет зачастую) - у Автора дейтасурс ссылается на singletable-
> ориентированный DataSet-компонент.
>
Если так, то это надо оговаривать заранее. Если нет, то "универсализм" никогда не достижим.
Это не в твой огород, а автору на заметку.
← →
Ega23 © (2007-03-14 15:08) [25]
> Сергей М. © (14.03.07 15:05) [23]
Вдогонку: это не решает проблему, когда используется view.
← →
Сергей М. © (2007-03-14 15:13) [26]
> Ega23 © (14.03.07 15:08) [24]
> Если так, то это надо оговаривать заранее
Не то слово)
А то ведь Автора можно было бы сразу нахлобучить "дубиной" типа "грид как таковой НЕ обязан быть ПРИВЯЗАННЫМ чем-либо к чему-либо"
← →
Drone (2007-03-14 15:39) [27]Согласен-все это есть.И работает.Просто ты топик не тот выбрал,так как моя задача очень специфична и можно сказать тренировочная.
← →
Drone (2007-03-14 15:46) [28]Все началось с того,что я решил использовать одну кнопку из popupmenu,которое привязал к трем гридам, для удаления записей из каждого из них на выбор(по какому ткнул-из такого и удалил,просто подставив в запрос название таблицы).Я понимаю что когда гриды выражают поля из нескольких связанных таблиц,то задача становится сложнее-об этом и начал говорить Ega23.Теперь мне и самому интересно.
← →
Reindeer Moss Eater © (2007-03-14 16:03) [29]Все интереснее и интереснее.
Гридов уже трое и у каждого свой датасет.
И при этом программист не знает у кого какой датасет именно.
← →
ANB © (2007-03-14 16:57) [30]
> И при этом программист не знает у кого какой датасет именно.
Вполне так себе ситуевина.
Кстати, как параметр имя таблицы передать нельзя, только динамически запрос формировать.
Кистате, с вьюхами все намного проще - вешаешь на нее триггер instead of и в нем делаешь что нужно, при удалении. А клиент всего лишь дает команду delete from Viewname where . . .
← →
Reindeer Moss Eater © (2007-03-14 17:27) [31]А без инстедоф разве не удалить?
← →
Drone (2007-03-14 17:58) [32]Да я сделаЛ уже и динамический запрос с параметром-таблицей :)
← →
Drone (2007-03-14 18:00) [33]2 АВN
в идеале клиент лишь вызывает хранимку которая удаляет из вьюхи,у которой срабатывает инстид триггер.
← →
ANB © (2007-03-14 18:41) [34]
> А без инстедоф разве не удалить?
не всегда - зависит от вьюхи
Страницы: 1 вся ветка
Текущий архив: 2007.05.13;
Скачать: CL | DM;
Память: 0.55 MB
Время: 0.042 c