Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
SashaMСкорее всего нужно писать как FoxPro Код: plaintext Автор. Меня смущает то, что вам не выдается ошибок на неверный синтаксис (в т.ч. в случае с WHERE склеенным). Может у вас там On Error Resume Next где-нить стоит???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:19 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, Можно работать через драйвер FoxPro, там есть ограничение на длину SQL. Но можно понасоздавать курсоров которые потом можно соединять, т.к. курсоры глобальны. И вообще эта задача для FoxPro. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:20 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, вот код Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:31 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05admа вот результат Надо тогда дать правильные имена полей в строке Код: plaintext Я не знаю, как вы там привязываетесь к столбцам сетки, но видимо типа того: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:34 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, все получилось спасибо вам))) а как это в файл записать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:46 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05adm, Судя по всему FoxPro балуетесь... File\Export... В Type выберите FoxPro 2.x (DBF) В То куда хотите сохранить и наберите имя файла + .dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:51 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05admа как это в файл записать? Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:52 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
SashaM, visual basic ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:57 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, еще раз спасибо ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.05.2010, 14:58 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, можете разъяснить выделенные строки Код: plaintext Код: plaintext 1. 2. UNION ALL SELECT KOD, NAME, 0 AS DSH, 0 AS ALIEVA, KOLVO AS SKLAD FROM sklad.dbf Код: plaintext 1. а как мне их упорядочить по полю NAME ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 10:57 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Здесь два запроса в одном (т.н. вложенные запросы). Внутренний запрос начинается открывающейся скобкой и заканчивается ") AS T". Таким образом, с точки зрения внешнего запроса он не отличается от просто таблицы с названием Т - можно было писать для наглядности Min(T.Name), Sum(T.DSH) и т.п. Внутренний запрос объединяет несколько запросов друг за другом с помощью UNION ALL. Запросы могут быть объединены только при условии, что у них абсолютно одинаковый набор полей, как по типу, так и по количеству и последовательности. Поэтому мы имеем "0 AS ALIEVA" и т.п., чтобы зарезервировать место для полей. В результате мы имеем сборник всех ваших 20ти таблиц. Внешний запрос (который, напоминаю, рассматривает внутренний как таблицу) просто выбирает поля из нее, но он объединяет строки с одинаковым кодом в одну строку (GROUP BY KOD). Таким образом у вас получится столько строк, сколько уникальных кодов у вас есть во всех таблицах. При объединении строк, поля, которые не вошли в объединение, должы обязательно очевидно агрегироваться какой-то агрегатной функцией, потому что в результате запроса должно получиться одно значение, а не куча. В случае с количеством - это функция Sum, оно и понятно. Нулевые значения не повлияют на сумму (можно было бы с тем же успехом использовать и NULL). Поле NAME теоретически тоже должно было попасть в GROUP. Однако, я не знаю, насколько у вас там строго, вдруг какой-то филиал поправит наименование. Тогда получится две строки с одинаковым кодом и разным наименованием. Поэтому на всякий случай, я из наименований выбираю одно, в данном случае минимальное (с точки зрения сравненя строк). Фух.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 11:50 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05admа как мне их упорядочить по полю NAME ? У вас нет NAME. Поэтому либо вы пишете первую строку по моему первому варианту: SELECT... Min(NAME) AS NAME и в самом конце запроса добавляете ORDER BY NAME либо, если не менять первую строку, пишете в самом конце ORDER BY Min(NAME) я бы посоветовал первый вариант, ибо фиг знает, как там сработает оптимизатор, чтобы быть уверенным, что Min не будет высчитываться два раза. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 11:53 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, спасибо,теперь есть ясность.ниже то что получилось Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 11:58 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
а теперь по-хорошему завести в базе таблицу со списком файлов и эти запросы не ручками формировать, а в цикле. Тогда при появлении нового филиала не нужно будет править и переустанавливать программу, достаточно будет внести новый филиал в таблицу филиалов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 12:39 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
ЗЫ: Особенно порадовал филиал UZBEK ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 12:40 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05admа как мне их упорядочить по полю NAME ? Кстати. Раз у вас INSERT INTO, то упорядочивать этот SELECT абсолютно бессмысленно. Упорядочивать надо выборку, которая идет в отображение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 12:43 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Proaduka05admа как мне их упорядочить по полю NAME ? Кстати. Раз у вас INSERT INTO, то упорядочивать этот SELECT абсолютно бессмысленно. Упорядочивать надо выборку, которая идет в отображение. то есть в самом ADO? автора теперь по-хорошему завести в базе таблицу со списком файлов и эти запросы не ручками формировать, а в цикле. Тогда при появлении нового филиала не нужно будет править и переустанавливать программу, достаточно будет внести новый филиал в таблицу филиалов. не совсем понимаю как это реализовать(можно по идее и через текстовый файл это сделать), только как совместить sql и цикл в этой таблице с именами файлов филиалов авторЗЫ: Особенно порадовал филиал UZBEK Узбекгородок называется район где находится наш филиал))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 13:15 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Pro, то то по типу этого?код не проверял Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 13:56 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05admShocker.Pro, то то по типу этого?код не проверял Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. то есть вот так Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 14:12 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05admто есть в самом ADO? Нет. В том SELECT-е, который вы используете для отображения данных в сетке. aduka05admто есть вот так нет, я совершенно другое имел ввиду. Есть таблица в БД (в той же, где вы собираете сводную информацию). В ней N строк, которые содержат имена файлов БД. Устраиваете цикл от 1 до N, в котором конструируете в нескольких текстовых переменных фрагменты запроса. Отдельно строку SELECT-а внешнего запроса, отдельно набор склеенных внутренних и т.п. После цикла объединяете эти переменные в одну, с добавлением той информации, которая не изменялась и выполняете запрос. Ну это по уму, а можно и оставить как есть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 14:44 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Proaduka05admа как мне их упорядочить по полю NAME ? У вас нет NAME. Поэтому либо вы пишете первую строку по моему первому варианту: SELECT... Min(NAME) AS NAME и в самом конце запроса добавляете ORDER BY NAME либо, если не менять первую строку, пишете в самом конце ORDER BY Min(NAME) я бы посоветовал первый вариант, ибо фиг знает, как там сработает оптимизатор, чтобы быть уверенным, что Min не будет высчитываться два раза. первый вариант привел к циклической ошибке а второй вариант создал в два раза больше записей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 14:46 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Proaduka05admто есть в самом ADO? Нет. В том SELECT-е, который вы используете для отображения данных в сетке. aduka05admто есть вот так нет, я совершенно другое имел ввиду. Есть таблица в БД (в той же, где вы собираете сводную информацию). В ней N строк, которые содержат имена файлов БД. Устраиваете цикл от 1 до N, в котором конструируете в нескольких текстовых переменных фрагменты запроса. Отдельно строку SELECT-а внешнего запроса, отдельно набор склеенных внутренних и т.п. После цикла объединяете эти переменные в одну, с добавлением той информации, которая не изменялась и выполняете запрос. Ну это по уму, а можно и оставить как есть. это будет в самый раз))) буду пробовать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 14:47 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
aduka05admпервый вариант привел к циклической ошибке а второй вариант создал в два раза больше записей Не знаю, что у вас там за ошибки, но в любом случае, как я написал выше, ORDER BY в SELECT... INTO вам не нужен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 14:47 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Shocker.Proaduka05admпервый вариант привел к циклической ошибке а второй вариант создал в два раза больше записей Не знаю, что у вас там за ошибки, но в любом случае, как я написал выше, ORDER BY в SELECT... INTO вам не нужен. ок ) не так принципиально это на самом деле в данном случае ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 15:35 |
|
||
|
Подскажите метод побыстрее
|
|||
|---|---|---|---|
|
#18+
Вы, видимо, допускаете классическую ошибку начинающего программиста БД. Запомните. В таблице БД нет никакой последовательности хранения данных. Нельзя применять понятия "добавить в конец таблицы", "эта запись раньше, чем та" и т.п. Это не Эксель. Добавляемые записи физически кладутся куда попало, в зависимости от наличия свободного места. Последовательность записей имеет место быть только когда вы делате ВЫБОРКУ с указанием СОРТИРОВКИ по опеределенному полю. Если сортировку не указать, записи будут выведены как попало, причем даже два раза подряд они могут быть выведены по-разному. В конструкции INSERT INTO... SELECT сортировка не имеет ни малейшего смысла. Даже если вы отсуортируете записи перед вставкой, в таблице они будут все равно храниться как попало. И только указание сортировки при ВЫБОРКЕ данных из таблицы гарантирует вам определенную последовательность строк. (Исключение - использование TOP и IDENTITY, но это пока мы не будем рассматривать) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2010, 15:52 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=36643080&tid=2159739]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
| others: | 12ms |
| total: | 138ms |

| 0 / 0 |
