|
|
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
Привет всем! Задача: Склад, перемещение со склада,накладная. Открываю 1-й рекордсет по накладной, 2-й по остаткам. необходимо обновлять записи одного рекордсета записями из другого, т.е. перемещение товара. Проблема: текущий рекордсет не поддерживает обновления! Строк мало, поэтому для проверки использую примитив - msgbox. при использовании adLockBatchOptimistic сообщение не появляестя , но вместо результата выводится False? Вопрос: где туплю? В mdb все нормально было, а ща перехожу на adp. Я только учусь. Help please! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 13:50 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
>вопрос:где я туплю Пытаетесь получить консультацию, НИЧЕГО не сказав про свои рекордсеты. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 13:57 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
ya дорогуша, отойдите от рекордсетов подальше- от них излучение. триггеры, ХП и транзакции тебе помогут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 14:07 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
2ХТ: честно говоря не представляю, чем можно в данной ситуации заменить (из предложенных ) "источник излучения" :) 2Shark: извини за вопрос, но что именно я должен сказать о рекордсетах ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 14:27 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
Ну бейсик наверно показать, как ты их делаешь. Ну прикол же- мои рекордсеты необновляемые, памагите. Может тип у них такой, может ключа в таблице нет, может, они и не должны быть обновляемыми. Юнион какой нибудь использован. Я в похожей задачке делал локальные таблички на DAO, которые и показывал пользователю. А данными на сервере манипулировал процедурами и пр. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 14:32 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
объясняю облученным рекордсет1 - это select from Таблица1 рекордсет2 - это select from Таблица2 делаишь update Таблица1 set Кол=Таблица1.Кол+Таблица2.Кол from Таблица1 INNER JOIN Таблица2 ON Таблица1.ID=Таблица2.ID а потом requery формы и все ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 14:33 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
2shark: Dim cn As New ADODB.Connection Dim rsM As New ADODB.Recordset Dim rsS As New ADODB.Recordset Dim sql As String cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=proba;Data Source=ALEX" cn.Open sql = "SELECT TOP 100 PERCENT Cod, Kol, Price, Nom,rowid FROM dbo.TblStorageRest WHERE (rowid IN (SELECT x FROM dbo.t))ORDER BY Cod" Set rsS.ActiveConnection = cn rsS.Open sql, cn, adOpenDynamic ', adLockBatchOptimistic sql = "SELECT TblStoragemove.Cod, TblStoragemove.Kol, TblStoragemove.PriceTov,TblStoragemove.D_pr,TblStoragemove.Postav,TblStoregePapers.Kontragent, TblStoregePapers.Nomer, TblStoregePapers.ID, TblStoragemove.rowid FROM TblStoregePapers INNER JOIN TblStoragemove ON TblStoregePapers.ID = TblStoragemove.ID WHERE (TblStoragemove.Refresh = 0) and (TblStoragemove.ID= '" & Me!Id & "')" Set rsM.ActiveConnection = cn rsM.Open sql, cn, adOpenDynamic ', adLockBatchOptimistic If rsM.RecordCount <> 0 Then rsM.MoveFirst Do While rsM.EOF = False rsS.Filter = "" rsS.Filter = "[cod]= '" & rsM.Fields(0).Value & "'" If Not rsS.EOF Then rsS.MoveFirst Do While Not rsS.EOF If rsS.Fields(1).Value < rsM.Fields(1).Value Then rsS.Fields(1).Value = rsS.Fields(1).Value - rsM.Fields(1).Value 'rsS.Update MsgBox "" &rsS.Fields(1).Value = rsS.Fields(1).Value - rsM.Fields(1).Value End If rsS.MoveNext Loop Else End If rsM.MoveNext Loop End If rowid - ключевое поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 14:40 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
2ХТ: такое в моей чернобыльской башке роится, тока до конца все оформить не могу. много "если" ....над подумать .... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 14:46 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
2 ya При переходе на ADP самый лучший вариант, забыть все методы и подходы в организации расчетов, доступа к данным, построения отчетов и т.п. Оставить в памяти только синтаксис VBA и знание конструктора Access. Все остальное желательно учить "с нуля"...например по Гетцу (т.2) + какая-нибудь книга по базам данных + книга по T-SQL. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 15:04 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
2 incold желания хоть отбавляй! много упоминаний о Гетце. Ссылку не кинешь(если есть)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 15:08 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
В форуме есть поиск. Пишешь Гетц жмешь кнопочку и получаешь целую кучу обсуждений (в т.ч. есть ли в сети, стоит ли покупать и т.д.) http://sql.ru/forum/actualsearch.aspx?search=%C3%E5%F2%F6&a=&ma=0&bid=4&dt=-1&s=1&so=1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 15:12 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
2 incold: за ссылку пасиба ;))) а по теме ниче не подскажешь, вариант Хама не устраивает,...или я че - то не догоняю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 15:23 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
А по теме Хам как раз правильно сказал (хранимые процедуры и триггера вместо рекордсетов), я просто добавил, что переход на ADP - это все равно что перейти с программирования под DOS на Windows. Сильно меняются глобальные представления о проектировании программ, а не какие-то тонкости в написании программного кода. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 15:30 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
допустим... Табл1: (накладная) код кол 1 10 2 10 Табл2: (выборка из остатков склада) код кол цена 1 1 0,4 1 8 0,5 1 6 0,6 2 4 0,7 2 14 0,55 необходимо списать со склада в таком порядке, в mdb через рекордсет прекрасно все шло.... нада писать хп или тригер (об этом ваще смутно понятие имею)? если хп , то не понятка с логикой работы этой самой хп, апдейтить то придется два набора записей че скажешь, народ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 15:48 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
почитай про курсоры DECLARE <cursor_name, sysname, test_cursor> CURSOR KEYSET FOR <select_statement, , SELECT au_fname FROM pubs.dbo.authors> DECLARE @name varchar(40) OPEN <cursor_name, sysname, test_cursor> FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO @name WHILE (@@fetch_status <> -1) BEGIN IF (@@fetch_status <> -2) BEGIN -- PRINT 'add user defined code here' -- eg. PRINT 'updating record for ' + @name UPDATE pubs.dbo.authors SET phone = replace(phone, ' ', '-') WHERE CURRENT OF <cursor_name, sysname, test_cursor> END FETCH NEXT FROM <cursor_name, sysname, test_cursor> INTO @name END CLOSE <cursor_name, sysname, test_cursor> DEALLOCATE <cursor_name, sysname, test_cursor> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 15:59 |
|
||
|
ADP: Необновляемый рекордсет
|
|||
|---|---|---|---|
|
#18+
Один из народа скажет, что у тебя ноги не успевают бежать за головой Если у тебя смутное представление о триггерах и хп, то лучше прочитай теорию, а потом переходи к конкретным примерам. Без обид - просто как совет. Никакого форума не хватит, чтобы рассказать "на пальцах" логику работы хп при непонимании логики работы клиент-серверного приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2004, 16:00 |
|
||
|
|

start [/forum/topic.php?desktop=1&fid=45&tid=1677137]: |
0ms |
get settings: |
7ms |
get forum list: |
12ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
190ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 209ms |
| total: | 484ms |

| 0 / 0 |
