|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
Бьюсь какой день, на работе никто не может помочь. Помогите!!!! Объявлен cursoradapter. на MSSQL 2000 есть таблица ,которую нужно обновить, ключ UNIQUE kod,data,nplt,priz lo_cao=CREATEOBJECT("CursorAdapter") lo_cao.alias="platto" lo_cao.DataSourceType="ODBC" lo_cao.DataSource=handle lo_cao.SelectCmd="EXEC Vplato ?km,?vgd" lo_cao.Tables="plato" lo_cao.KeyFieldList="kod,nplt,data,priz" Lo_cao.UpdateNameList="kod plato.kod,nplt plato.nplt,; Data plato.Data,summa plato.summa,naim plato.naim,; priz plato.priz,user1 plato.user1,raion plato.raion,; mes plato.mes,god plato.god" lo_cao.updatetype=1 lo_cao.updatableFieldList="kod,nplt,data,summa,; naim,priz,user1,raion,mes,god" lo_cao.CursorFill() lo_cao.BufferModeOverride=5 когда запись вставляется один раз, то проходит, при повторном запросе, когда меняется только сумма выдается сообщение duplicate key на VS SQL2000 SELECT platto SEEK STR(kll,8)+STR(jj,6)+DTOC(dd)+jj2 IF .not. FOUND() APPEND BLANK ENDIF REPLACE kod WITH kll, priz WITH jj2, data WITH dd, nplt WITH jj REPLACE naim WITH vnaim,summa WITH sw + summa,raion WITH vraion Таблица должна редактироваться? Правильно я понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 15:58 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
авторlo_cao.KeyFieldList="kod,nplt,data,priz" бред оставьте только первичный ключь ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 16:16 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
Lo_cao.UpdateNameList="kod plato.kod,nplt plato.nplt,; Data plato.Data,summa plato.summa,naim plato.naim,; priz plato.priz,user1 plato.user1,raion plato.raion,; mes plato.mes,god plato.god" точка с запятой на кой в конце строк? Код: plaintext 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 16:20 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
авторвыдается сообщение когда? ош-ки Вы должны начать выидеть в момент того, как записи начнут посылаться на сервер (команда tableupdate) одновременно смотрите профайлером, что на сервере выполняется ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 16:23 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
vtanya Танечка, не плачь - не получается, - нарисуй мне сюда create таблички и индексов + напиши какие записи всунуть я нарисую код под Вашу проблему ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 16:35 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
vtanya Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Для начала, уберите модификацию ключевых полей внутрь IF..ENDIF, ведь если запись с такими ключами найдена, то нет смысла их редактировать Код: plaintext 1. 2. 3. 4. 5. 6. 7.
Кроме того, а какой индекс Вы построили по курсору? Вот этот самый SEEK() Вы выполняете по какому индексу? Можно увидеть его код создания? Вы уверены, что этот индекс найдет ранее введенное значение? В самом курсоре, еще ДО сброса по TableUpdate() не создается этот самый дубль? На всякий случай напомню, что индекс типа UNIQUE в FoxPro не запрещает создание дублей. Но отображает только первый попавшийся. Это своеобразный фильтр, наложенный на таблицу. Запрещает создавать дубли индекс типа CANDIDAT. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 16:42 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
авторТаблица должна редактироваться? Правильно я понимаю? я так понимаю, проблема с редактированием серверной стороны и добавлением записей в серверную таблицу давайте поднимем для вопрошающего нормально кад получим ответ от него, получил он на клиенте редактируемый курсор смешали в кучу сервер, клиента ..., что редактируем, куда ... ... |
|||
:
Нравится:
Не нравится:
|
|||
03.10.2008, 17:45 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
Переставила строки с ключевыми параметрами, тот же эффект. Сваливается на MS SQL. Создание базы прикладываю if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[plato]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[plato] GO CREATE TABLE [dbo].[plato] ( [kod] [numeric](8, 0) NOT NULL , [nplt] [numeric](6, 0) NULL , [priz] [char] (6) COLLATE Cyrillic_General_CI_AS NULL , [data] [datetime] NULL , [summa] [numeric](11, 2) NULL , [naim] [char] (45) COLLATE Cyrillic_General_CI_AS NULL , [raion] [tinyint] NULL , [user1] [char] (10) COLLATE Cyrillic_General_CI_AS NULL , [myguid] [uniqueidentifier] NOT NULL , [mes] [numeric](2, 0) NULL , [god] [numeric](4, 0) NULL , [nazn] [char] (250) COLLATE Cyrillic_General_CI_AS NULL ) ON [PRIMARY] GO ALTER TABLE [dbo].[plato] WITH NOCHECK ADD CONSTRAINT [DF_plato_myguid] DEFAULT (newid()) FOR [myguid] GO CREATE UNIQUE INDEX [IX_plato] ON [dbo].[plato]([kod], [nplt], [data], [priz]) ON [PRIMARY] GO ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2008, 09:45 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
вот КАД для Вашего случая пробуйте добавлять записи, если Вы попробуете на сервер сунуть комбин-ю неуникальную, то получите ошибку после того как у Вас это заработает, сообщите, что не устраивает и что необходимо доработать(исправить) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2008, 10:22 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
Все дело в том, что эти явления возникают , когда записей в таблице на сервере больше 100. Это у нас что-то с сервером и как можно выпутаться из этой ситуации. Зайчику большое спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2008, 16:41 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
авторВсе дело в том, что эти явления возникают , когда записей в таблице на сервере больше 100. не верю 100 записей - это не количество, просто у Вас уже какая-то путаница Вы не ответили на вопрос какая у Вас проблема. Вы не можете просунуть какие-то записи на сервер? или Вас беспокоит сам факт появления ошибки? ошибка изм-я на сервере + профайлер однозначно Вам покажут, какие комбинации Вы не можете вставить(изменить) ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2008, 16:58 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
еще на вопросы отвечайте -доступ синхронный/ асинхр.? -если просто селектом тянете, есть проблемы? -Каду св-во FeshSize -1 ставили? если нет результата - покажите ХП Vplato + опишите алгоритм, что нужно сделать (сколько и каких записей добавить), чтобы увидеть Вашу проблему ... |
|||
:
Нравится:
Не нравится:
|
|||
06.10.2008, 17:02 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
Явление duplicate key на MS SQL возникает, когда в таблице большое количество записей , как только таблица небольшая программа прорабатывае прекрасно. На самом SQL сервере , когда редактирую большие таблицы, возникает ошибка FIREHOSE, на маленьких этого нет ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 11:04 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
а может на сервере для autoinc поля задана малая размерность и они начинают повторяться ? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 11:20 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
авторЯвление duplicate key на MS SQL возникает, когда в таблице большое количество записей по Вашим ответам можно только гадать на кофейной гуще ... хорошо, они возникают Вы смотрите в профайлере, что происходит? Вы должны видеть "проблеммную" команду, хорошо - она "проблеммная" затяните ее в кверианалайзер - выполните, какой результат? очень сложно Вам помочь. Вы не даете ответы на поставленные вопросы. разберитесь со стуктурой таблицы, с Вашей ХП. Посмотрите трейс - там все будет показано - в чем Ваша проблема. Без трейса, без понимания что там у Вас происходит, без ответов - я бессилен Вам помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 12:21 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
Решила перейти на хранимые процедуры, обычные запросы, раз не получилось через cursoradapter и fox , хотела перевести свои старые программы. С большим количеством записей проблема не только у меня, смотрела форум MSSQL - а ответов нет( это по поводу firehose). Спасибо всем, кто откликнулся. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 15:04 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
авторРешила перейти на хранимые процедуры, обычные запросы, раз не получилось через cursoradapter у меня все работает прекрасно. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
автора ответов нет Вы старательно не даете Вам помочь. Чтобы Вам помочь нужно установить причину. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 15:24 |
|
cursoradapter duplicate key
|
|||
---|---|---|---|
#18+
еще раз прошу ответить на вопрос я Вас просил выставить синхронный режим работы с данными + установить фетчсайз в Каде в -1 Вы это делали? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.10.2008, 15:27 |
|
|
start [/forum/topic.php?fid=41&fpage=145&tid=1587176]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
others: | 367ms |
total: | 545ms |
0 / 0 |