![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы
![]() |
Поиск в этой теме
![]() |
![]() |
#1 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
![]()
Вопрос такой:
есть какая то структура... допустим три таблицы. В одной какие то данные и во второй... а третья это связующая таблица(раскрывает много ко многим) Как мне за один запрос реализовать следующее? Найти запись в таблице1 Найти запись в таблице 2 Установить соответствие заняся айдишники этих записей в таблицу 3 P.S. база SQL Server или access И можно ли это сделать с еще не добавленными записями? ну типа записать в таблицу 1 данные и тут же узнать айдишник записи и тут же тоже самое сделать со второй и записать айдишники записей в третью таблицу??
Писано по д'Эльфийски
Последний раз редактировалось Лубышев; 20.03.2010 в 20:34. |
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]()
по-моему, для этих целей служат триггеры. А, может быть, все это делать в скрипте самом или проге (смотря что там у вас)?
|
![]() |
![]() |
![]() |
#3 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
![]()
вот и дело в том что я делаю все это в программе сам. то есть сначала пишу запись... потом запросом я считываю айдишник, потом пишу во вторую таблицу и делаю то же самое. а потом уже пишу связи... че то больно грамоздко и медленно получается. а мне кажется что намного быстрее будет если к базе обращаться как можно реже... и не охото лишних временных переменных создавать в проге. с тригеррами баз данных я практически не знаком и вряд ли смогу че нить с ними сделать...
Писано по д'Эльфийски
|
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]()
Я тоже не очень знаком, просто навожу на возможное решение. Иногда можно просто нагуглить какой-нибудь простой код.
Может, вы покажете пример, как все это должно происходить, какие там данные выбираются? Именно 1 запрос не всегда может быть быстрее нескольких. Проблема именно в скорости? Есть критические места по ней? |
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
![]()
ну если я обьясню всю задачу это еще больше запутает... У меня тема диплома жестко называется: "Информационная технология извлечения и дизинтыграции фактологических таблиц из интернета"
Так что лучше в это все не вдаваться. Просто за один запрос мне надо произвести запись и чтение одновременно... то есть записать запись и тут же узнать ее айдишник... и тут же произвести поиск по второй таблице и после того как два айдишника нашлись записать оба в третью таблицу... а скорость вообще то возрастет на много и даже не в два и не в три раза а по моим предположениям в сотни раз
Писано по д'Эльфийски
|
![]() |
![]() |
![]() |
#6 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
![]()
ладно попробую еще упростить задачу... допустим данные записаны уже.
мне надо установить связь между данными... - заполнить третью таблицу Код:
Код:
Код:
Писано по д'Эльфийски
Последний раз редактировалось Лубышев; 22.03.2010 в 22:41. |
![]() |
![]() |
![]() |
#7 |
Участник клуба
Регистрация: 28.06.2009
Сообщений: 1,950
|
![]()
Иногда такие запросы можно делать вложенные, в данном случае не знаю, обычно зависит от базы. И будет ли такой 1 запрос лучше нескольких... Бесконечных циклов допускать не надо, а то, что запросов много - ну это часто бывает, даже на тех же форумах.
|
![]() |
![]() |
![]() |
#8 |
Участник клуба
Регистрация: 23.07.2007
Сообщений: 1,054
|
![]()
В некорорых задачах нужны циклы такие... а вообще каждое обращение к базе серьезно тормозит программу. А цикл хоть и бесконечный но работает в потоке и управляем... Ну это сейчас не важно...(это все работает)
А вот нужно мне уменьшить число запросов к базе... база SQL Server ну или пока что Access
Писано по д'Эльфийски
Последний раз редактировалось Лубышев; 22.03.2010 в 22:43. |
![]() |
![]() |
![]() |
#9 | |
Новичок
Джуниор
Регистрация: 09.04.2010
Сообщений: 2
|
![]() Цитата:
Код:
|
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Чтение нескольких записей в TList ? | spamer | Общие вопросы Delphi | 10 | 30.10.2009 17:07 |
Формирование нескольких сводных таблиц | FormAlDeGid | Microsoft Office Excel | 0 | 24.10.2009 12:04 |
Удаление нескольких записей | Hobbit_88 | БД в Delphi | 5 | 23.04.2009 17:18 |
добавления нескольких записей в MS Acces | opel.omega | БД в Delphi | 276 | 27.12.2008 09:22 |
Поиск нескольких записей | VenMaster | БД в Delphi | 1 | 14.06.2008 22:48 |