powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите метод побыстрее
25 сообщений из 160, страница 2 из 7
Подскажите метод побыстрее
    #36637849
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
спасибо большое поищу инфу про dBASE
благодарю за терпение
просто это первый форум где задаю вопросы
поэтому формулирую видимо неправильно)
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36637853
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
КАТЕГОРИЧЕСКИ рекомендую прочесть три раза и вникнуть.
Ибо пособие написано кровьюна основе многолетнего опыта
http://www.rsdn.ru/Info/howtoask.xml
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36637860
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
так и сделаю))
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638027
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Код: plaintext
1.
2.
Conn.Execute "INSERT INTO ostatok.dbf(KOD,NAME,DSH) SELECT b.KOD,b.NAME,b.KOLVO " + _
 "FROM dsh.dbf as b ,ostatok.dbf as a " + _
 "where a.KOD=b.KOD"
так заработало (взято с http://www.sql.ru/forum/actualthread.aspx?tid=581972 ), но почему то не работает условие
Код: plaintext
"where a.KOD=b.KOD"
вместо того чтобы заменять данные в поле DSH
запрос просто добавляет все записи из второй таблицы в первую
то есть даже не заменяя схожие значения, а просто из одной таблицы делает 2
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638033
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто вам сказал, что INSERT должен заменять????
Почитайте основы SQL. Заменяет UPDATE.
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638040
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
можете подсказать , а то щас рыться лень
тогда и смысла нету в этом условии
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638051
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admShocker.Pro,
можете подсказать , а то щас рыться лень
тогда и смысла нету в этом условии

А что подсказать-то?
Вторую страницу прошу ТЗ - нету!
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638055
Shocker.Pro,
авторТЗ-это что?
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638058
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05adm@gmail.comShocker.Pro,
авторТЗ-это что?

Ёмоё
Яндекс на что придумали (если уж не знаете)
http://yandex.ru/yandsearch?clid=9582&text=%D0%A2%D0%97&lr=213
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638065
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
то есть описать то что я хочу получить?))
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638068
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admShocker.Pro,
то есть описать то что я хочу получить?))

И то, ИЗ чего вы хотите получить. И какие сопутствующие условия этого получения.

Вообще, чтоб вы понимали, что требуется: хорошо проработанное ТЗ - половина (а чаще и больше) выполненной работы . Я запрос вам за пять минут нарисую (люблю SQL), но если мне не придется клещами из вас вытаскивать часами информацию, вам же это надо, не мне.

(прочли ссылку мою? там это очень хорошо расписано)
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638075
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
Задача состоит в следующем , выгружаются остатки из 1с в dbf ,
всего файлов 20 из 20 филиалов , в файле ostatok.dbf есть поля (KOD,NAME и названия филиалов)
в файлах которые присылаются с филиалов поля(KOD и NAME)с файлом ostatok.dbf одинаковы
единственно в них есть поле KOLVO(количсетво), так вот надо все эти файлы объединить в один
(ostatok.dbf) по полю KOD , а поля KOLVO разместить по полям филиалов в ostatok.dbf
поэтому и использовал INSERT с условием where ostatok.KOD=dsh.KOD(это файл филиала) ,
думал он будет объединять их по полю и заполнять поле Филиала Количеством
\/вот код \/
Код: plaintext
1.
2.
Conn.Execute "INSERT INTO ostatok.dbf(KOD,NAME,DSH) SELECT b.KOD,b.NAME,b.KOLVO " + _
 "FROM dsh.dbf as b ,ostatok.dbf as a " + _
 "where a.KOD=b.KOD"
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638079
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
автор(прочли ссылку мою? там это очень хорошо расписано)
не успел , но прочту обязательно , самому неудобно становится задавать дурные вопросы
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638083
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
также может быть такое что в файле ostatok.dbf не будет схожих записей
с файлами с филиалов , поэтому надо чтобы те записи которых нет тоже добавлялись в ostatok.dbf
по полям KOD NAME и поле Филиала(KOLVO-количество с файла который прислали)
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638088
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эх, учиться вам еще и учиться писать ТЗ.
Ну сами перечиайте и подумайте, может ли посторонний человек его понять.
Я только после десятого прочтения и основываясь на предыдущем опыте вроде разобрался...

Код: plaintext
1.
UPDATE ostatok.dbf SET DSH=b.KOLVO
FROM ostatok.dbf AS a INNER JOIN dsh.dbf AS b ON a.KOD=b.KOD
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638093
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
хороший вы человек))
но я так понял что если записей схожих нет то они не попадут из файла dsh.dbf в ostatok.dbf?
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638094
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admShocker.Pro,
также может быть такое что в файле ostatok.dbf не будет схожих записей
с файлами с филиалов , поэтому надо чтобы те записи которых нет тоже добавлялись в ostatok.dbf
по полям KOD NAME и поле Филиала(KOLVO-количество с файла который прислали)

Код: plaintext
1.
2.
3.
INSERT INTO ostatok.dbf(KOD,NAME,DSH)
SELECT b.KOD,b.NAME,b.KOLVO
FROM dsh.dbf AS b LEFT JOIN ostatok.dbf AS a ON a.KOD=b.KOD
WHERE a.NAME IS NULL
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638099
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
выдает ошибку
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638102
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
сработало Спасибо вам большое)))
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638561
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
когда используешь запрос для файла dsh.dbf то все нормально
Код: plaintext
1.
2.
3.
4.
Conn.Execute "INSERT INTO ostatok.dbf(KOD,NAME,DSH)" + _
'"SELECT b.KOD,b.NAME,b.KOLVO,c.KOLVO " + _
'"FROM dsh.dbf AS b LEFT JOIN ostatok.dbf AS a ON a.KOD=b.KOD" + _
'"WHERE a.NAME IS NULL"
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638570
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
но если использовать этот запрос для нескольких файлов (допустим dsh.dbf и sklad.dbf)
dsh.dbf
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
If PathFileExists("C:\ostatok2\dsh.DBF") =  1  Then
 Dim Conn As New ADODB.Connection
 Conn.Open "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=C:\ostatok2\;DefaultDir =C:\ostatok2\"
 Conn.Execute "INSERT INTO ostatok.dbf(KOD,NAME,DSH)" + _
 '"SELECT b.KOD,b.NAME,b.KOLVO,c.KOLVO " + _
 '"FROM dsh.dbf AS b LEFT JOIN ostatok.dbf AS a ON a.KOD=b.KOD" + _
 '"WHERE a.NAME IS NULL"
 Conn.Close
 Set Conn = Nothing
End If
ostatok.dbf
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
If PathFileExists("C:\ostatok2\sklad.DBF") =  1  Then
 Conn.Open "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=C:\ostatok2\;DefaultDir =C:\ostatok2\"
 Conn.Execute "INSERT INTO ostatok.dbf(KOD,NAME,KOLVO)" + _
 "SELECT b.KOD,b.NAME,b.KOLVO " + _
 "FROM sklad.dbf AS b LEFT JOIN ostatok.dbf AS a ON a.KOD=b.KOD " + _
 "WHERE a.NAME IS NULL "
 Conn.Close
 Set Conn = Nothing
End If
и это все в одной процедуре то получается такая картина
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638589
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.Pro,
он все позиции добавляет заново в конец таблицы
вместо такого вида
KOD NAME SKLAD DSH
123 но-шпа 150 200
получается так
KOD NAME SKLAD DSH
123 но-шпа 150
123 но-шпа 200
ниже рисунок как должно получаться
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638600
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Со вторым фрагментом все понятно - это мой код.
А что это такое???

Код: plaintext
1.
2.
3.
4.
5.
6.
If PathFileExists("C:\ostatok2\dsh.DBF") =  1  Then
 Dim Conn As New ADODB.Connection
 Conn.Open "DRIVER={Microsoft dBase Driver (*.dbf)};DBQ=C:\ostatok2\;DefaultDir =C:\ostatok2\"
 Conn.Execute "INSERT INTO ostatok.dbf(KOD,NAME,DSH)"
 Conn.Close
 Set Conn = Nothing
End If

Вы же опять ТЗ на этот фрагмент не написали, хотите, чтобы я это расшифровал? Не расшифрую, это нерабочий фрагмент кода.
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638609
Фотография aduka05adm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
KOD NAME SKLAD DSH
 123  но-шпа   150  
 123  но-шпа       200 
получается так , а должно быть так
Код: plaintext
1.
KOD NAME SKLAD DSH
 123  но-шпа   150   200 
...
Рейтинг: 0 / 0
Подскажите метод побыстрее
    #36638640
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
aduka05admполучается так , а должно быть так

Получается в результате ЧЕГО? Нерабочего фрагмента кода, который вы опубликовали или чего?
Если вы сначала сделаете все UPDATE, а потом все INSERT-ы - это одно, если чередуя - другое.
...
Рейтинг: 0 / 0
25 сообщений из 160, страница 2 из 7
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Подскажите метод побыстрее
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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