Отсутствует свойство SQLConnection в Delphi XE 10
Отсутствует свойство SQLConnection в Delphi XE 10
День добрый!
Установить опции соединения таким образом:
SQLConnection1.SQLConnection.SetOption(coBCDPrecision, Integer(PChar('14,4')));
теперь не получается, т.к. свойства SQLConnection у компонента TSQLConnection больше нет в версии XE 10.
Какие свойства, каких компонент теперь предлагается использовать для установки опций?
Установить опции соединения таким образом:
SQLConnection1.SQLConnection.SetOption(coBCDPrecision, Integer(PChar('14,4')));
теперь не получается, т.к. свойства SQLConnection у компонента TSQLConnection больше нет в версии XE 10.
Какие свойства, каких компонент теперь предлагается использовать для установки опций?
Re: Отсутствует свойство SQLConnection в Delphi XE 10
В RAD Studio 10 Seattle вы можете задать расширенной опции драйвера BCDPrecision значение 14,4 при помощи такого кода:
Код: Выделить всё
SQLConnection1.Params.Values['BCDPrecision'] := '14,4';
Re: Отсутствует свойство SQLConnection в Delphi XE 10
Андрей, Спасибо!
Так можно любые опции задавать? Нам не только coBCDPrecision нужно. Мы использовали очень много разных опций.
Так можно любые опции задавать? Нам не только coBCDPrecision нужно. Мы использовали очень много разных опций.
Наверное даже можно вместо строки 'BCDPrecision' использовать константу SBCDPrecision из модуля DriverOptions, да?AndreyZ писал(а):опции драйвера BCDPrecision ... при помощи такого кода
Re: Отсутствует свойство SQLConnection в Delphi XE 10
Начиная с RAD Studio 2007 и более поздних, вы можете задавать расширенные опции dbExpress driver for SQL Server используя свойство соединения TSQLConnection.Params . Более подробно о расширенных опциях драйвера вы можете прочесть в файле Readme.html, который находится в папке, куда был установлен продукт dbExpress driver for SQL Server.
Re: Отсутствует свойство SQLConnection в Delphi XE 10
Спасибо, понял!
А как логические значения туда присваивать?
SQLConnection1.Params.Values[SFetchAll] := '0'
или
SQLConnection1.Params.Values[SFetchAll] := 'false'
А как логические значения туда присваивать?
SQLConnection1.Params.Values[SFetchAll] := '0'
или
SQLConnection1.Params.Values[SFetchAll] := 'false'
Re: Отсутствует свойство SQLConnection в Delphi XE 10
В свойстве соединения TSQLConnection.Params имена и значения параметров необходимо задавать как строковые значения. Например, чтобы задать параметру FetchAll логическое значение False используйте:
Код: Выделить всё
SQLConnection1.Params.Values['FetchAll'] := 'False';
Re: Отсутствует свойство SQLConnection в Delphi XE 10
В новой версии драйвера стало можно задавать опцию FatchAll=false
Работать стало удобнее.
Спасибо!
Но, наткнулся на нехорошее свойство открытых курсоров при установке опции FatchAll=false
Когда пытаюсь изменять (update) таблицу с надоконца профетченным курсором, MS SQL ругается - не хочет выполнять изменения.
Такое поведение для нас неожиданно. Ваш драйвер для Oracle и PostgreSQL совершенно свободно даёт это делать, а драйвер для MS SQL нет.
Может быть Вы в драйвере вместо серверного курсора открываете клиентский курсор? Можете как-нибудь исправить подобную ситуацию? У нас куплена последняя версия Вашего драйвера.
Спасибо!
Работать стало удобнее.
Спасибо!
Но, наткнулся на нехорошее свойство открытых курсоров при установке опции FatchAll=false
Когда пытаюсь изменять (update) таблицу с надоконца профетченным курсором, MS SQL ругается - не хочет выполнять изменения.
Такое поведение для нас неожиданно. Ваш драйвер для Oracle и PostgreSQL совершенно свободно даёт это делать, а драйвер для MS SQL нет.
Может быть Вы в драйвере вместо серверного курсора открываете клиентский курсор? Можете как-нибудь исправить подобную ситуацию? У нас куплена последняя версия Вашего драйвера.
Спасибо!
Re: Отсутствует свойство SQLConnection в Delphi XE 10
Технология dbExpress не позволяет реализовать для датасетов использование курсоров серверного типа в SQL Server. Поэтому dbExpress-датасеты используют курсоры клиентского типа, и мы не можем повлиять на это.
Указанная вами ошибка возникает потому, что стандартный OLEDB provider и SQL Native Client не разрешают изменять данные в таблице до тех пор, пока на стороне сервера остаются невычитанные данные этой таблицы, и мы также не можем повлиять на это поведение.
Для решения проблемы попробуйте использовать Direct режим нашего драйвера. Например, это можно сделать в ран-тайм:
Указанная вами ошибка возникает потому, что стандартный OLEDB provider и SQL Native Client не разрешают изменять данные в таблице до тех пор, пока на стороне сервера остаются невычитанные данные этой таблицы, и мы также не можем повлиять на это поведение.
Для решения проблемы попробуйте использовать Direct режим нашего драйвера. Например, это можно сделать в ран-тайм:
Код: Выделить всё
// SQLConnection1.DriverName := 'DevartSQLServer';
// SQLConnection1.GetDriverFunc := 'getSQLDriverSQLServer';
// SQLConnection1.LibraryName := 'dbexpsda40.dll';
// SQLConnection1.VendorLib := 'sqlncli11';
SQLConnection1.DriverName := 'DevartSQLServerDirect';
SQLConnection1.GetDriverFunc := 'getSQLDriverSQLServerDirect';