|
|
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Блин, а ведь я сам тоже накололся с этими параметрами в ADO для UPDATE-запросов. Таким образом запускаемый UPDATE-запрос работать не будет: Код: plaintext 1. 2. 3. 4. 5. 6. 7. Коллекция выполняемого запроса "qryUpdDate" cmd.Parameters.Count=0, даже если мы сделаем cmd.Parameters.Refresh после cmd.CommandText = .... все равно ноль. - Естественно вышеуказанную ошибку о не удается найти объект.... мы и получаем Если не задавать тип cmd.CommandType= , т.е. =adCmdUnknown, то становится совсем весело, в вотчере в свойстве cmd.Parameters.Count наблюдаем такой текст - Invalid SQL Statement; expected 'DELETE', 'INSERT','PROCEDURE', 'SELECT' or 'UPDATE' В MSDN на эту ошибку находим такой любопытный документ: ACC2000: You May Need to Refer to Jet Stored Procedures as Tables in ADO из которого узнаем, что оказывается при обращении к сохраненным запросам через ADO при необходимости манипулировать параметрами надо заменить cmd.CommandType = adCmdStoredProc на cmd.CommandType = adCmdTable, иначе получим ошибку. Но все это касается токо SELECT запросов, для UPDATE запросов adCmdTable конечно никак не прокатит. Вообщем для UPDATE запросов с параметрами чрез ADO необходимо действовать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. Т.о. в ADO в этом случае надо самим создавать параметр и добавляеть его в коллекцию, потому что сам ADO для UPDATE запросов коллекцию Parameters заполнять не хочет (или не может или не видит или еще что). Причем ни в коем случае после строки Код: plaintext не делайте Код: plaintext иначе Ваш добавленный параметр в мгновение ока тут же исчезнет из коллекции Parameters, веселуха вообщем (Если это общеизвестный факт, то дико извиняюсь, но для меня, после DAO такое поведение ADO оказалось сюрпризом) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2004, 15:49 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Код: plaintext Прошу обратить внимание, что согласна, что запрос не универсален, однако Count(Явка.Явка)=True писать можно (док-вом является действующий запрос). Вы случайно не путаете с Sum. Сначала идет выборка тех записей, кот true, группируя по № сотрудника, т е -1, а далее подсчитывается количество выбранных явок для этих сотрудников, так что все ОК. А с остальным буду разбираться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 21:56 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
автороднако Count(Явка.Явка)=True писать можно (док-вом является действующий запрос). Готов спорить на съедение собственной кепки, что в действующем запросе этого нет. Count(...)=True - это все равно что Count(...)= - 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 22:18 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Пы.Сы. Писать так действительно можно. Только результат будет не тот. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 22:50 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
для проверки временно заменила пар-ры на конкретные ссылки на форму. 1 вариант не работает: Код: plaintext 1. 2. 3. 4. 5. 6. 2 вариант работает: Код: plaintext 1. 2. 3. 4. 5. 3 вариант тоже работает: Код: plaintext 1. 2. 3. 4. 5. 6. К моему большому удивлению, в первом варианте я использовала не between, >= ... <= И как только поменяла на between, то запрос начал выдавать количество не всех явок сотр-ка, а пределах дат с формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 22:53 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Похоже, что мне надо съесть половину кепки... Выбираю ту, где нет козырька. Во-первых, оказалось, что в HAVING действительно True ведет себя не как -1. В высшей степени странное явление. Вполне тянет на грабли и заслуживает всеобщего внимания. Во-вторых, все равно 2-й и 3-й варианты не эквивалентны. Оказалось, что HAVING Count(...)=True - это все равно что HAVING Count(...)>0, но не HAVING Count(...)=-1 (как думал я) и не WHERE ...=True (как думала автор вопроса). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:11 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Проверено следующим образом. Таблица A: f1 - counter f2 - text b - yes/no Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. SELECT f2 FROM A GROUP BY f2 HAVING Count(b)>0 - возвращает все 4 значения a, b, c, d. SELECT f2 FROM A GROUP BY f2 HAVING Count(b)=True - аналогично. SELECT f2 FROM A GROUP BY f2 HAVING Count(b)=-1 - не возвращает ничего. SELECT f2 FROM A WHERE b=True GROUP BY f2 - возвращает a, b, c, т.е. только те значения, где есть b=True. Итого: единственный работающий вариант - WHERE b=True. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:24 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
> Итого: единственный работающий вариант - WHERE b=True ну это как бы и подразумевалось. А вот select count b from t having count(b)=true - явление действительно забавное. Насколько я помню, у меня были проблемы с запросами вида select max(boolField) from .... , которые вместо ожидаемого 0 возвращали не 0 (сейчас не помню, 1, -1, или мифический true). Лечилось преобразованием логического поля к числу: select max(boolField*1) from .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:31 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
Сори, оказалась ошибка... Проверку делала не на те месяцы, где было у сотрудника неявка, поэтому, когда пробовала разные запросы, он выдавал один и тот же правильный рез-т...Полностью согласна с ед-ым верным реш-ем...и каюсь... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:33 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
2 irinka: У меня козырек остался. Могу поделиться. :^) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:36 |
|
||
|
Error: Не удается найти объект в семействе, соответ-щий треб-му имени или порядковому номеру
|
|||
|---|---|---|---|
|
#18+
:) Только, если он шоколадный ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.03.2004, 23:39 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32462973&tid=1675696]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
154ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
2ms |
| others: | 243ms |
| total: | 501ms |

| 0 / 0 |
