powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
17 сообщений из 17, страница 1 из 1
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883853
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день.
Работаю с Firebird 2.5 из Excel VBA
Процедура обновляет даты по заказу. А после нее задеваются находящиеся рядом заказы. Это как так то?

вот вычищенный код. После его выполнения, сразу несколько строк, с ID 9381..9377 изменяют свои значения. Для других строк колво соседей будет другим, обычно 2-3 соседа задевает.

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
Sub TestDat2()
Dim OrderID%

OrderID = [Заказ_ID]

    Call CreateConnection
    If CN.State = adStateClosed Then Exit Sub
    qSTR = "select  o.plan_date_firststage, o.plan_date_pack from orders o where o.id=" & OrderID
    With RS
        .CursorType = adOpenForwardOnly
        .Open qSTR, CN
             !PLAN_DATE_FIRSTSTAGE = "31.10.2010"
             !PLAN_DATE_PACK = "12.11.2010"
        .Update
        .Close
    End With
    Call TerminateConnection
End Sub


Процедура создания коннекта, ничего интересного
Код: vbnet
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.
Sub CreateConnection()
    Dim AdoErr
    Dim ErrMsg As String
    
    ConnStr = ConStr_Driver & _
                "UID=" & [Настройки_ПользовательБД] & ";" & _
                "PWD=" & [Настройки_ПарольБД] & ";" & _
                "DBNAME=" & [Настройки_АдресБД] & ";"
                
    If CN.State = adStateOpen Then CN.Close
    CN.CursorLocation = adUseServer
                
On Error GoTo ErrCN
    CN.Open ConnStr
        
    With RS
        RS.CursorType = adOpenDynamic
        RS.LockType = adLockOptimistic
    End Withё
    
    With CMD
        .ActiveConnection = CN
        .CommandType = adCmdText
    End With
        Exit Sub
ErrCN:
        Call MsgBox(ErrMsg & Chr(10) & AdoErr.NativeError & " | " & AdoErr.Description, vbCritical, "Ошибка подключения!")
End Sub



При этом прямой запрос на обновление работает корректно и чудес не вызывает, обновляется только одна строка..
Код: sql
1.
2.
3.
update orders o
set o.plan_date_pack='01.01.2019', o.plan_date_firststage='02.01.2019'
where o.id=9380


Триггеров никаких нет, кроме на автосоздание ID перед новой записью.
Что это за ерунда такая?
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883856
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0TЧто это за ерунда такая?

Это криворукий программист, работающий через левые методы доступа. Зови DBA, умоляй снять
трассировку его сессии и вдалбливай в голову получившейся портянкой что именно идёт не так
и почему так делать не надо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883858
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry Sibiryakov,
не спорю, что криворукий.. Но блин.. везде же работает. жеж..
ща попробую снять трейс. я сам себе и DBA...
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883861
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883863
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и наведите на путь истинный, в чем "левость" методов доступа?
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883864
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PATRI0T,

смотрю трейс и вижу такой запрос..
автор WCHAR * 0x1E76F320 [ 112] "UPDATE "ORDERS" SET PLAN_DATE_FIRSTSTAGE=?,PLAN_DATE_PACK=? WHERE (PLAN_DATE_FIRSTSTAGE=? AND PLAN_DATE_PACK=? )"

А где where ID=?
Как такто?
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883865
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0Tв чем "левость" методов доступа?

Помимо всего прочего - в отсутствии контроля за запросами, которые ими генерируются и
посылаются на сервер.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883867
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Простите за настойчивость, а как контролировать запросы? и про "все прочее" тоже интересно..
Как переделать код, чтоб он был правильный?
Учился по статьям из курса по VBA (интуит)..
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883870
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0TПростите за настойчивость, а как контролировать запросы?

Писать их ручками.

PATRI0TКак переделать код, чтоб он был правильный?
Учился по статьям из курса по VBA (интуит)..
Ну а теперь пришла пора продолжить самообразование с помощью документации и гугля.
"VBA тут никто не знает." (с)
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39883882
hvlad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0T,

не уверен, но возможно оно не видит полей PK в выборке и поэтому не включает их в условие апдейта.
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39884060
Коваленко Дмитрий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0TДобрый день.
Работаю с Firebird 2.5 из Excel VBA
Процедура обновляет даты по заказу. А после нее задеваются находящиеся рядом заказы. Это как так то?



PATRI0TПроцедура создания коннекта ...
Код: vbnet
1.
2.
3.
4.
    ConnStr = ConStr_Driver & _
                "UID=" & [Настройки_ПользовательБД] & ";" & _
                "PWD=" & [Настройки_ПарольБД] & ";" & _
                "DBNAME=" & [Настройки_АдресБД] & ";"



...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39884143
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Коваленко Дмитрий, картинку понял, смешно. НО:
YouTube Video
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39884174
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
hvlad, Спасибо тебе, мил человек!
авторне уверен, но возможно оно не видит полей PK в выборке и поэтому не включает их в условие апдейта.

Действительно, это решило проблему.
И действительно, во всех других местах у меня обновлялись почти все поля в строке, и запрос был вида "Select * From .." в который и попадал РК..

Очень странное поведение ODBC.. Или это у них так принято?
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39884176
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
01.11.2019 12:22, PATRI0T пишет:
> Очень странное поведение ODBC.. Или это у них так принято?

ОДБЦ тут ни при чем.
это Power Query проявляет свой неестественный нЫтеллехт.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39884214
PATRI0T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот ведь блин... а я думал, что для маленького проекта не сильно принципиально, на чем писать клиента.. И выбрал то что боле мене знал сам. А тут оказывается такая подстава от Excel..
Интересно, и много у него таких сюрпризов?
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39884222
Мимопроходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нужно просто учитывать нюансы.
а так, инструмент как инструмент.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
    #39884247
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PATRI0TИ выбрал то что боле мене знал сам.

И внезапно оно оказалось "мене", причём сильно. Так бывает, естественный процесс освоения.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Какая то несусветная дичь. Изменяю одну запись, а редактируются несколько
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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