powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите метод побыстрее
25 сообщений из 160, страница 5 из 7
Подскажите метод побыстрее
    #36643258
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
точно подметили, я об этом не знал,
Код: plaintext
1.
Устраиваете цикл от  1  до N, в котором конструируете в нескольких текстовых переменных фрагменты запроса. Отдельно строку SELECT-а внешнего запроса, отдельно набор склеенных внутренних и т.п. После цикла объединяете эти переменные в одну, с добавлением той информации, которая не изменялась и выполняете запрос.

считав данные из таблицы с названиями филиалов и вставив в запрос , как я буду определять если
данный файл в наличии , для последующей его обработки или нет(НАПРИМЕР dsh.dbf ,sklad.dbf и т.д)?
просто что то не как соображу последовательность действий и как это реализовать
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643266
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admсчитав данные из таблицы с названиями филиалов и вставив в запрос , как я буду определять если данный файл в наличии , для последующей его обработки или нет(НАПРИМЕР dsh.dbf ,sklad.dbf и т.д)?

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

aduka05admпросто что то не как соображу последовательность действий и как это реализовать

Тогда забейте.
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643380
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
авторвнутри цикла, так же, как и сейчас, только имя файла будет переменной
буду пробовать может че интересное получится
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643489
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Open "C:\ostatok2\nastr1.txt" For Input As # 1 
Do Until EOF( 1 )
Line Input # 1 , strtxt
strtemp = "," + strtxt
strtemp2 = ", Sum(" + strtxt + ")"
strsql = strsql + strtemp
strsql2 = strsql2 + strtemp2
Loop
Close # 1 
strsqlfull = " INSERT INTO ostatok.dbf (KOD,NAME" + strsql + ") "
strsqlfull2 = " SELECT KOD, Min(NAME)" + strsql2 + " From ("
все нормально , но проблема с кодом который ниже
Код: plaintext
1.
2.
3.
4.
"SELECT KOD, NAME, KOLVO AS DSH, 0 AS ALIEVA,0 AS SKLAD,0 AS SOVET "
",0 AS KALIN18,0 AS YARAG,0 AS GAMZATOVA,0 AS KIROVA,0 AS GAGARINA,0 AS APTEKA29,0 AS LENINA104 "
",0 AS LEKAR,0 AS MELOCH,0 AS YNIVER,0 AS REDUCTOR,0 AS PIROGOV,0 AS CB "
",0 AS KASPIY,0 AS NOVPOS,0 AS DOVERIE,0 AS UZBEK,0 AS KAL5KA,0 AS HAS,0 as BUINAKSK,0 AS DERBENT " 
как мне в цикле сделать чтобы после первой строки(допустим DSH) , KOLVO перешло на ALIEVA
,ладно если еще точно знать те строки которые я вбил , а если я добавлю нового контрагента как сделать Чтобы KOLVO было в нужной части да еще во всех остальных нули стояли
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643500
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не вижу второго цикла, который склеивает внутренний запрос через Union All
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643513
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
его то сделать можно
а как решить эту проблему
Код: plaintext
1.
SELECT KOD, NAME, KOLVO AS DSH,  0  AS ALIEVA, 0  AS SKLAD, 0  AS SOVET "
", 0  AS KALIN18, 0  AS YARAG, 0  AS GAMZATOVA, 0  AS KIROVA, 0  AS GAGARINA, 0  AS APTEKA29, 0  AS LENINA104
не поймет же обработка что надо KOLVO вставить там где надо и 0 там где надо, вообще если не использовать эту часть
Код: plaintext
1.
2.
 0  AS ALIEVA, 0  AS SKLAD, 0  AS SOVET 
, 0  AS KALIN18, 0  AS YARAG, 0  AS GAMZATOVA, 0  AS KIROVA, 0  AS GAGARINA, 0  AS APTEKA29, 0  AS LENINA104
запрос не будет работать?
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643516
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сначала цикл сделайте. А проблема будет решаться внутри цикла. Если в процессе не сообразите - подскажу.
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643533
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
strplusstroka = "Union All "
strsql3 = strsql3 + "SELECT KOD, NAME, 0 AS DSH, 0 AS ALIEVA,0 AS SKLAD,0 AS SOVET "
strsql3 = strsql3 + ",0 AS KALIN18,0 AS YARAG,0 AS GAMZATOVA,0 AS KIROVA,0 AS GAGARINA,0 AS APTEKA29,0 AS LENINA104 "
strsql3 = strsql3 + ",0 AS LEKAR,0 AS MELOCH,0 AS YNIVER,0 AS REDUCTOR,0 AS PIROGOV,0 AS CB "
strsql3 = strsql3 + ",0 AS KASPIY,0 AS NOVPOS,0 AS DOVERIE,0 AS UZBEK,0 AS KAL5KA,0 AS HAS,0 as BUINAKSK,0 AS DERBENT "
strsql3 = strsql3 + "FROM " +наш перем+ " "
For i =  1  To nom
strfull3 = strsql3 + strplusstroka
List1.AddItem (strfull3)
Next i
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643537
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что такое "наш перем", почему я не вижу подстановки имени таблицы внутри цикла, зачем все это грузится в List1 и главное - где фоормирование собственно строки, содержащей выборки из всех таблиц, разделенных unoin all
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643546
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
Open "C:\ostatok2\nastr1.txt" For Input As # 1 
Do Until EOF( 1 )
Line Input # 1 , strtxt
nom = nom +  1 
strtemp = "," + strtxt
strtemp2 = ", Sum(" + strtxt + ")"
strtemp3 = ",KOLVO AS " + strtxt
strsql = strsql + strtemp
strsql2 = strsql2 + strtemp2
strsql3 = strsql3 + strtemp3
strful3 = "SELECT KOD, NAME" + strsql3 + " FROM " + strtxt + " Union All "
Loop
Close # 1 
strsqlfull = " INSERT INTO ostatok.dbf (KOD,NAME" + strsql + ") "
strsqlfull2 = " SELECT KOD, Min(NAME)" + strsql2 + " From ("
не совсем понимаю зачем в цикле переменной придавать это значение ,в данном случае оно сотрется
а в данной конструкции
Код: plaintext
strful3 = strful3+"SELECT KOD, NAME" + strsql3 + " FROM " + strtxt + " Union All "
получится не понятно с чем и для чего как и в первом случае
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643553
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
потому что у вас должно быть два цикла и оба с перебором имен таблиц.

В первом формируется три переменных: для инсерта, для агрегатного селекта и рыба для одной строки внутреннего селекта.

Во втором формируется внутренний селект из рыб, они склеиваются, вставляется имя таблицы, а так же один из нулей превращается в KOLVO
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643566
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: plaintext
рыба
что имеете ввиду под этим
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643571
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
0 AS DSH, 0 AS ALIEVA,0 AS SKLAD,0 AS SOVET, 0 AS KALIN18,0 AS YARAG,0 AS GAMZATOVA,0 AS KIROVA,0 AS GAGARINA,0 AS APTEKA29,0 AS LENINA104,0 AS LEKAR,0 AS MELOCH,0 AS YNIVER,0 AS REDUCTOR,0 AS PIROGOV,0 AS CB,0 AS KASPIY,0 AS NOVPOS,0 AS DOVERIE,0 AS UZBEK,0 AS KAL5KA,0 AS HAS,0 as BUINAKSK,0 AS DERBENT
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643584
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Do Until EOF( 1 )
Line Input # 1 , strtxt
nom = nom +  1 
strtemp = "," + strtxt
strtemp2 = ", Sum(" + strtxt + ")"
strtemp3 = ",0 AS " + strtxt
strsql = strsql + strtemp
strsql2 = strsql2 + strtemp2
strsql3 = strsql3 + strtemp3
For i =  0  To nom
strselect = strselect + "SELECT KOD, NAME" + strsql3 + " FROM " + strtxt + ".DBF Union All "
Next i
Loop
Close # 1 
насколько понял вы это имели ввиду,
но как один из нулей превратится в KOLVO еще в нужном месте я не пойму
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643587
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я не говорил "два вложенных цикла"
Я говорил, два цикла, оба с перебором имен таблиц.
Пока не закончен первый цикл, для второго данные не готовы.

а вы какую-то ерунду написали.
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643588
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
согласен )))
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643589
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
Open "C:\ostatok2\nastr1.txt" For Input As # 1 
Do Until EOF( 1 )
Line Input # 1 , strtxt
nom = nom +  1 
strtemp = "," + strtxt
strtemp2 = ", Sum(" + strtxt + ")"
strtemp3 = ",0 AS " + strtxt
strsql = strsql + strtemp
strsql2 = strsql2 + strtemp2
strsql3 = strsql3 + strtemp3
Loop
Close # 1 
Open "C:\ostatok2\nastr1.txt" For Input As # 1 
Do Until EOF( 1 )
Line Input # 1 , strtxt
strselect = strselect + "SELECT KOD, NAME" + strsql3 + " FROM " + strtxt + ".DBF Union All "
Loop
Close # 1 
strsqlfull = " INSERT INTO ostatok.dbf (KOD,NAME" + strsql + ") "
strsqlfull2 = " SELECT KOD, Min(NAME)" + strsql2 + " From ("
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643590
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
но как один из нулей превратится в KOLVO еще в нужном месте я не пойму
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643591
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admShocker.Pro,
но как один из нулей превратится в KOLVO еще в нужном месте я не пойму

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

Ну все. Теперь вы обязаны ее самостоятельно применить во втором цикле
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643592
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProВы забегаете вперед

А, нет, не забегаете, я не заметил сразу что код вы уже выложили.
НУ что, сами с replace сообразите, или подсказывать?
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643594
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
думаю что получится ,
если что вы же здесь?)))
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643595
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
единственно последний UNION ALL будет мешать)), надо его тоже replace )
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643596
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admесли что вы же здесь?)))

У вас примерно 20 минут...
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643601
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
тогда помогите ))
Код: plaintext
1.
2.
3.
4.
5.
Do Until EOF( 1 )
Line Input # 1 , strtxt
strselect = strselect + "SELECT KOD, NAME" + strsql3 + " FROM " + strtxt + ".DBF Union All "
strselect2 = Replace(strselect, "0 AS " + strtxt, "0", "KOLVO")
Loop
Close # 1 
по ходу примерно так только че то не работает
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36643603
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перемудрили

Код: plaintext
1.
2.
3.
4.
5.
Do Until EOF( 1 )
Line Input # 1 , strtxt
strselect = strselect + "SELECT KOD, NAME" + Replace(strsql3, "0 AS " + strtxt, "KOLVO AS " + strtxt) + _
" FROM " + strtxt + ".DBF Union All "
Loop
Close # 1 
...
Рейтинг: 0 / 0
25 сообщений из 160, страница 5 из 7
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите метод побыстрее
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]