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

Вниз

как умнее   Найти похожие ветки 

 
Дева ©   (2006-07-31 15:12) [0]

Здравствуйте. В чем будет разница, если я добавляю в таблицу новую запись запросом с текстом "insert into......" или "Select * from......" с вызовом методов Insert.......Post (как методов набора данных). Как будет кмнее и правильнее


 
Sergey13 ©   (2006-07-31 15:15) [1]

Умность и правильность одинакова.


 
Desdechado ©   (2006-07-31 15:18) [2]

Видел я как-то чела, который делал SELECT * FROM tabl, чтобы потом сделать AppendRecord и отправить кэшированные изменения на сервер с последующей перечиткой всего. Причем ни одна из запрошенных записей несколькомиллионной таблицы не использовалась после выборки.
Так что делай выводы.


 
Дева ©   (2006-07-31 15:25) [3]

так разницы в скорости или еще каких либо критерия нет? Тогда зачем существуют вообще эти два способа? Оставили бы один... ?


 
Desdechado ©   (2006-07-31 15:28) [4]

Если тебе не нужнопоказывать что-то, а просто писать в БД, тонезачем тянуть все на клиента, делай просто INSERT INTO.
Если же надо показывать и редактировать (в т.ч. добавлять), то используй Insert-Post-ApplyUpdates. Но в этом случае вредно (с точки зрения скорости и траффика) таскать на клиента большие объемы. Юзеры работают с небольшой целевой выборкой по условиям.


 
Ega23 ©   (2006-07-31 15:29) [5]

Я бы вторым не стал пользоваться ни за какие коврижки. Ибо см.[2]


 
Max Zyuzin ©   (2006-07-31 15:30) [6]

>Дева ©   (31.07.06 15:25) [3]
Если нужно порезать кусок колбасы, то можно банально взять ножичек и порезать, можно это сделать топором, можно бензопилой, можно вообще положить эту колбасу под трамвай...

Все зависит от того что удобнее...


 
Дева ©   (2006-07-31 15:33) [7]

А что за UpdateSQL?


 
Sergey13 ©   (2006-07-31 15:35) [8]

> [5] Ega23 ©   (31.07.06 15:29)

Опять что ли спорить с тобой начать? 8-)


 
Ega23 ©   (2006-07-31 15:36) [9]


> что за UpdateSQL?


TUpdateSQL is an update component that uses SQL statements to update a dataset. You must provide one TUpdateSQL component for each underlying table accessed by the original query that you want to update.

Note: If you use more than one update component to perform an update operation, you must create an OnUpdateRecord event to execute each update component.

An update component actually encapsulates three TQuery components. Each of these query components perform a single update task. One query component provides an SQL UPDATE statement for modifying existing records; a second query component provides an INSERT statement to add new records to a table; and a third component provides a DELETE statement to remove records from a table.
When you place an update component in a data module, you do not see the query components it encapsulates. They are created by the update component at runtime based on three update properties for which you supply SQL statements:

ModifySQL specifies the UPDATE statement.
InsertSQL specifies the INSERT statement.
DeleteSQL specifies the DELETE statement.

At runtime, when the update component is used to apply updates, it:

1 Selects an SQL statement to execute based on the UpdateKind parameter automatically generated on a record update event. UpdateKind specifies whether the current record is modified, inserted, or deleted.
2 Provides parameter values to the SQL statement.
3 Prepares and executes the SQL statement to perform the specified update.


 
Ega23 ©   (2006-07-31 15:37) [10]


> Опять что ли спорить с тобой начать? 8-)


Не интересно.  :)
Всё равно к консенсусу не придём...  :)


 
Дева ©   (2006-07-31 15:41) [11]

Ega23, а по-русски?


 
Ega23 ©   (2006-07-31 15:42) [12]


> Ega23, а по-русски?


А зачем???


 
Сергей М. ©   (2006-07-31 15:58) [13]


> Дева ©   (31.07.06 15:12)


Ты с дуба упала ?)


> я добавляю в таблицу новую запись запросом с текстом "insert


Да , это - предложение, реалилующее операцию вставки.


> или "Select * from.


Ну и какого хрена упоминается Select, НЕ имеющий НИ какого отношения ко вставке ?


 
Sergey13 ©   (2006-07-31 16:04) [14]

2 [13] Сергей М. ©   (31.07.06 15:58)
> Ну и какого хрена упоминается Select, НЕ имеющий НИ какого
> отношения ко вставке ?

Об этом было дальше написано. 8-)


 
Desdechado ©   (2006-07-31 16:05) [15]

Сергей М. ©   (31.07.06 15:58) [13]
Выражения выбирай.
И, если не можешь включить свой телепатор, используй общественный из предыдущих постов.


 
Сергей М. ©   (2006-07-31 16:11) [16]


> Sergey13 ©   (31.07.06 16:04) [14]
> Об этом было дальше написано.


Вставка к выборке имеет весьма темное отношение (в условиях сиквел-сервера - особенно)


> Desdechado ©   (31.07.06 16:05) [15]
> Выражения выбирай.


Не заставляй меня цитировать не выбранные тобой выражения.


> Дева ©   (31.07.06 15:12)


Не сподобитесь ли, барышня. милостиво соизволить изложить здесь Код ?


 
Sergey13 ©   (2006-07-31 16:19) [17]

> [16] Сергей М. ©   (31.07.06 16:11)

Вставка идет в набор данных, который получается выборкой. Где тут противоречие?


 
Дева ©   (2006-07-31 16:21) [18]

2 Ega23, ну не знаю английского, уж простите :-(
Что же непонятного я написала?
2 Сергей М. - нету кода, это был вопрос выбора. Просто в общих чертах


 
Сергей М. ©   (2006-07-31 16:25) [19]


> Дева ©   (31.07.06 16:21) [18]


Чем проще конечное выражение (для конкретного СУБД-парсера и СУБД-движка), тем и "умнее", тем и проще, тем и эффективней.

Не надо  месить в кучу кл. и серв. части.

Приводи цитату сиквел-выражения, НЕПОСРЕДСТВЕННО исполняемого серверной частью - тогда и разговор будет серьезным и предметным.


 
Sergey13 ©   (2006-07-31 16:28) [20]

> [19] Сергей М. ©   (31.07.06 16:25)

У тебя настроение плохое?
Ты еще план выполнения запроса у девушки спроси. 8-))))


 
Сергей М. ©   (2006-07-31 16:30) [21]


> Sergey13 ©   (31.07.06 16:28) [20]


)

Не надо девушке план.

Ей нужно описать кто/что она хочет в кон.итоге - в некоем ТЗ.


 
Плохиш ©   (2006-07-31 16:35) [22]


> Дева ©   (31.07.06 15:25) [3]
> Тогда зачем существуют вообще эти два способа? Оставили
> бы один... ?

В кафешку можно зайти как через парадный вход, так и через кухню. Будем закалачивать парадный вход?


 
Sergey13 ©   (2006-07-31 16:36) [23]

> [21] Сергей М. ©   (31.07.06 16:30)

Да ей в
[4] Desdechado ©   (31.07.06 15:28)
уже все ответили самым наилучшим способом.


 
Ega23 ©   (2006-07-31 17:29) [24]


> Sergey13 ©   (31.07.06 16:36) [23]


чё то мне сейчас шеф заданий накидал, настроение упало...
Может внатуре поспорим?  :)


 
Anatoly Podgoretsky ©   (2006-07-31 20:09) [25]

Дева ©   (31.07.06 15:12)  
Здравствуйте. В чем будет разница, если я добавляю в таблицу новую запись запросом с текстом "insert into......" или "Select * from......" с вызовом методов Insert.......Post (как методов набора данных). Как будет кмнее и правильнее

Разница большая,

первая вставляет в существую таблицу, не меняя ее структуры и индексов.

вторая делат в новую таблицу, но не позволяет управлять структурой и индексами. Вторая вроде бы изобретение Микрософта и использовать ее надо чрезвычайно редко, особенно из-за невозможности управлять структурой и индексами.

Первая по стандарту SQL-92


 
Anatoly Podgoretsky ©   (2006-07-31 20:10) [26]

Я возможно не точно понял вопрос, на всякий случай я говорю об следующих конструкциях:

INSERT INTO ... SELECT FROM ...
SELECT FROM ... INSERT INTO ...


 
Sergey13 ©   (2006-08-01 08:26) [27]

2 [24] Ega23 ©   (31.07.06 17:29)
> Может внатуре поспорим?  :)
Ну давай. 8-)
Для начала объясни, чем отличается 2 от 1 для СКЛ-сервера, если известно, что 2 транслируется в 1.


 
ЮЮ ©   (2006-08-02 03:27) [28]

В случае 2 пользоательский DataSet тоже увеличится на одну запись.
В случае 1 ему ничего не ведомо о вставке в таблицу записи и потребуется его переоткрывать.

Всё это, естественно, в случае если этот DataSet кому то нужен.

Если же это просто пакетная вставка данных из другого источника, или работа осуществляется без VCL DB-aware компонентов, т.е. TDataSet не нужен, достаточно  и 1



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

Форум: "Начинающим";
Текущий архив: 2006.08.20;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.52 MB
Время: 0.063 c
4-1146253724
Beginner81
2006-04-28 23:48
2006.08.20
Как запустить приложение (игру) в окне?


2-1154029115
Leyhont
2006-07-27 23:38
2006.08.20
Гиперссылка


2-1154196824
Gnoll
2006-07-29 22:13
2006.08.20
програмно открыть доступ к ресурсам


15-1153420548
Мефисто
2006-07-20 22:35
2006.08.20
Скульптуры с детских площадок (взято с ЖЖ) :)


2-1154290722
<X>
2006-07-31 00:18
2006.08.20
Цвет текста





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