Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > MS Access > Запрос на 1 компе работет а на другом - нет


Автор: vam911 23.10.2005, 14:36
Есть ряд запросов, между ними ничего общего.

На одной группе компов они работают, а на другой группе компов - не работают (mdb)
Пробовал
переставлять винды, аксесс, Патчить ОДБС
Не помогает.
может есть какие-либо идеи????

Автор: Akina 23.10.2005, 20:27
В связи с тем что штатные телепаты в отпуске, рекомендую привести текст запросов, структуру таблиц, из которых они выбирают данные, и код, выполняющий эти запросы.

Заодно можешь зарегистрироваться.

Автор: [email protected] 24.10.2005, 18:45
Если с таким сталкивался я думаю дальнейшее описание не потребуется, а если нет - оно врядли поможет

НО, привожу описание

1/ касперского нет - установлен симантек антивирус. Купил себе, поставил как только не конфигурил - все Ок, все работает
2/ запросы не юзают функции VBA
3/ А выглядит все так:
на тех компах, где работает в форме повляется повая строка, в которую можно вводить данные (новая строка).
А на тех, на которых не работает - нет

сам запросик

Код

PARAMETERS podtip_doc_param Long, 
           kod_out_str Long;
SELECT documentb_k_oplate.Код AS documentb_k_oplate_Код, 
       documentb_k_oplate.pod_tip_documenta,
       documentb_k_oplate.nomer,
       documentb_k_oplate.data,
       sviazi_dokumentov.in_kod,
       sviazi_dokumentov.in_tabl_kod,
       sviazi_dokumentov.out_tabl_kod
FROM (                     [Список статей]
     INNER JOIN (          documentb_k_oplate 
                INNER JOIN biudjet_k_oplate 
                        ON documentb_k_oplate.Код = biudjet_k_oplate.kod_dokumenta) 
             ON            [Список статей].Код = biudjet_k_oplate.Статья) 
     INNER JOIN            sviazi_dokumentov 
             ON            biudjet_k_oplate.Код = sviazi_dokumentov.out_kod
WHERE (((documentb_k_oplate.pod_tip_documenta)=[podtip_doc_param])
  AND ((sviazi_dokumentov.in_kod)=[kod_out_str])
  AND ((sviazi_dokumentov.in_tabl_kod)=2) 
  AND ((sviazi_dokumentov.out_tabl_kod)=2));


везде ключ по полю код

(по полям есть обычные индексы, но это вряд - ли играет роль)

Автор: Akina 25.10.2005, 08:19
Обычный запрос на выборку, НИКАК не связанный с добавлением новой записи в базу и появлением новой строки на форме.


Автор: Papirus 25.10.2005, 08:47
Русские названия полей/таблиц могут влиять? Имею ввиду настройки компов.

Автор: vam911 26.10.2005, 05:56
Цитата(Akina @ 25.10.2005, 08:19)
Обычный запрос на выборку, НИКАК не связанный с добавлением новой записи в базу и появлением новой строки на форме.

Даже не знаю, что ответить. Судя по звездочкам - шаришь. а Ответ хреноват (5 слов матом здесь подразумевается). Ясный пень, что запрос в форму ничего не добавляет - он является источником строк. Запрос может допускать или не допускать добавления новых строк в зависимости от его построения - этот должен допускать.

Автор: vam911 26.10.2005, 05:58
Цитата(Papirus @ 25.10.2005, 08:47)
Русские названия полей/таблиц могут влиять? Имею ввиду настройки компов.

Логично, попробую назвать по англ...

Если поможет, то от чего это может зависить?

Автор: Akina 26.10.2005, 08:04
Цитата(vam911 @ 26.10.2005, 06:56)
Запрос может допускать или не допускать добавления новых строк в зависимости от его построения - этот должен допускать.

Похоже, у тебя трудности с пониманием сути механизма доступа к данным. Запрос - не более чем алгоритм отбора и сортировки записей. По этой строке запроса данные выбираются в рекордсет (тот, что источник данных формы) - а вот он может быть обновляемым или необновляемым. Если он необновляемый, это может быть из-за:
1) не допускающего обновление режима открытия рекордсета
2) не допускающей однозначного толкования точки изменения/дополнения схемы данных запроса
Во втором случае разное поведение на разных машинах представляется совершенно невероятным. Но в первом - если режим открытия (прямо - источника данных, или косвенно - через свойства формы например) не был указан явно при написании кода, возможны разные значения по умолчанию в настройках драйверов доступа к данным.

В любом случае источник наблюдаемой проблемы - не сам запрос.

Автор: vam911 26.10.2005, 18:12
Цитата(Akina @ 26.10.2005, 08:04)
Цитата(vam911 @ 26.10.2005, 06:56)
Запрос может допускать или не допускать добавления новых строк в зависимости от его построения - этот должен допускать.

Похоже, у тебя трудности с пониманием сути механизма доступа к данным. Запрос - не более чем алгоритм отбора и сортировки записей. По этой строке запроса данные выбираются в рекордсет (тот, что источник данных формы) - а вот он может быть обновляемым или необновляемым. Если он необновляемый, это может быть из-за:
1) не допускающего обновление режима открытия рекордсета
2) не допускающей однозначного толкования точки изменения/дополнения схемы данных запроса
Во втором случае разное поведение на разных машинах представляется совершенно невероятным. Но в первом - если режим открытия (прямо - источника данных, или косвенно - через свойства формы например) не был указан явно при написании кода, возможны разные значения по умолчанию в настройках драйверов доступа к данным.

В любом случае источник наблюдаемой проблемы - не сам запрос.

Горе от ума.

Какое эти рассуждения имеют отношение к вопросу???

Повторяю вопрос:
ОДНА и ТАЖЕ ПРОГРАМАА!!!
на 3-х точках (9 машин) - ВСЕ ОК
На 1 - не работает (4 машины)

Запрос-рекордсет-форма ВСЕ ОДИНАКОВО!

ЧТО источник проблемы - не запрос это весьма вероятно. НО Вопрос ПОЧЕМУ не работает!!!

Автор: Akina 27.10.2005, 09:48
Повторяю:
Цитата(Akina @ 26.10.2005, 09:04)
если режим открытия (прямо - источника данных, или косвенно - через свойства формы например) не был указан явно при написании кода, возможны разные значения по умолчанию в настройках драйверов доступа к данным.


Автор: [email protected] 28.10.2005, 19:09
Цитата(Akina @ 27.10.2005, 09:48)
Повторяю:
Цитата(Akina @ 26.10.2005, 09:04)
если режим открытия (прямо - источника данных, или косвенно - через свойства формы например) не был указан явно при написании кода, возможны разные значения по умолчанию в настройках драйверов доступа к данным.

А по подробней?? источник данных указывается, как

обработка в Form_Open

Me.RecordSource = "SELECT * FROM 555_short_vid_doc" текст 555_short_vid_doc приведен выше.

Какие именно настройки и где смотреть??

Автор: Papirus 31.10.2005, 16:53
Цитата(vam911 @ 26.10.2005, 05:58)
Если поможет, то от чего это может зависить?


1. если аглицкая версия винды\офиса - могут быть проблемы с русскими названиями и как следствие с запросами...
2. можно ли определить в чем различие ПО на компах в успешных и неуспешных точек.
3. правильно ли я понял, что на каждой точке своя машина - сервер хранить данные? (или каждая машина работает с автономным mdb файлом?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)