|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Фактически внутри при попытке сделать SQLSetConnectAttr SQL_AUTOCOMMIT получаю [FireDAC][Phys][ODBC][msodbcsql17.dll] SQL_ERROR без каких либо других пояснений. Ошибка плавающая, попытки специально воспроизвести ни к чему не приводят. Может кто-то сталкивался? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 14:04 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Приложение не многопоточное ли? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 14:07 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Ну по факту нет. Там есть доп поток, для него есть доп. соединение и оно делает исключительно select ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 14:08 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Michael Longneck, OFF-TOPIC просто удивлён, а зачем там ODBC? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 16:45 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
В смысле? Внутри FireDac использует ODBC для доступа к MSSQL ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 17:04 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Michael Longneck, интересно.. а зачем? ведь стандартный доступ к MSSQL это драйвер OLEDB P.S. http://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_Microsoft_SQL_Server_(FireDAC) "We strongly recommend that you have SQL Native Client installed" ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 18:42 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Кроик Семёнведь стандартный доступ к MSSQL это драйвер OLEDB Для его вкуривания нужна слишком ядовитая трава. Не зря он был deprecated столько лет. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 18:47 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
06.07.2021 18:47, Dimitry Sibiryakov пишет: > Для его вкуривания нужна слишком ядовитая трава. Не зря он был deprecated столько лет. дык и ODBC был в свое время deprecated. всё зависит от того, какой именно сорт травы предпочитают CEO M$, курирующие направление СУБД. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 18:52 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Все обычные рекомендации я исполнил, версия драйверов у меня свежая и.т.д. Но почему может обламываться установка AUTOCOMMIT в свойствах соединения ODBC я не знаю. И диагностической информации тоже нет, и попытки воспроизвести под отладчиком ни к чему не привели.... Дмитрий Арефьев разве что если что подскажет. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 18:57 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Мимопроходящийдык и ODBC был в свое время deprecated. Но для него по крайней мере код компактнее. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 18:58 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
https://docs.microsoft.com/en-us/sql/odbc/reference/syntax/sqlsetconnectattr-function?view=sql-server-2017 утверждает, что тут может мешаться DTS. Попробуй получить диагностику со стороны сервера, Profiler там или ещё какое-нибудь вуду... Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 19:25 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Да трудно это. Невозможно на весь день профайлер поставить... Пока у меня идея созрела вместо ODBC (FireDac) методов втупую исполнять SET IMPLICIT_TRANSACTION OFF\ON, COMMIT, ROLLBACK прямыми командами.... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 19:35 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
хз ... возможно, что-то где-то стартует транзакцию перед этим вызовом ... ... |
|||
:
Нравится:
Не нравится:
|
|||
06.07.2021, 21:23 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Итак, решение. Ошибка возникнет, если вызвать Query или StoredProc через ExecSQL, а сам sql код при этом возвращает resultset. Всё пройдёт без ошибок, но при попытке вызвать TDConnection.StartTransaction будет невнятная SQL_ERROR. Лечение - либо открывать через Open (OpenOrExecute) либо делать Query.Disconnect(AbortJob = True). ... |
|||
:
Нравится:
Не нравится:
|
|||
11.08.2021, 12:32 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Дополню. Как определить в FireDac (тестировал только MSSQL) есть ли resultset, если вы сделали ExecSQL вместо Open Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 11:52 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Я бы переписал так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
А может быть будет работать и так Код: pascal 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:06 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
NextRecordSet не просто проверит, а ещё и изменит состояние для Command переданного из TFDQuery.Command. Про проверку на TODBCStatementBase согласен, всё таки это глубокое залезание в малодокументированные потроха FireDac. Но в целом я не верю что там Дмитрий что-то поменяет так серьёзно... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:27 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Michael Longneck ещё и изменит состояние ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:46 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Michael Longneck, Код: pascal 1. 2. 3. 4.
Никакой смены состояния. Просто неудачное название свойства ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:49 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Да, посмотрел. Перепутал с NextRecordSet самого TFDQuery. Но название и правда тут неудачное ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:51 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Michael Longneck Но в целом я не верю что там Дмитрий что-то поменяет так серьёзно... ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 13:54 |
|
FireDac, MSSQL ошибка при вызове StartTransaction.
|
|||
---|---|---|---|
#18+
Michael Longneck, Кстати, проверь. Оно решает проблему? Самому интересно ... |
|||
:
Нравится:
Не нравится:
|
|||
02.09.2021, 14:01 |
|
|
start [/forum/topic.php?fid=58&msg=40094817&tid=2037055]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
55ms |
get tp. blocked users: |
1ms |
others: | 268ms |
total: | 419ms |
0 / 0 |