fisharebest / webtrees

Online genealogy
https://webtrees.net
GNU General Public License v3.0
419 stars 290 forks source link

2.2 Dev MS SQL Server Session create fails at end of SetupWizzard (converting nvarchar to datetime) #4932

Closed FrankWarius closed 6 months ago

FrankWarius commented 6 months ago

I just startet to test Webtrees 2.2 with MS SQL Server 2022 again.

Setup Wizzard fails with error. After 2 http refresh a normal logon and changing theme was sucsessfull.

Einrichtungsassistent von webtrees Ein unerwarteter Datenbankfehler ist aufgetreten.

SQLSTATE[22007]: [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Bei der Konvertierung eines nvarchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs. (SQL: insert into [wt22_session] ([session_id], [session_time], [user_id], [ip_address], [session_data]) values (qsifspiebjlbqfs9cpu535t8rr, 2023-12-31 15:54:50, 0, ::1, initiated|b:1;))

0 D:\GitRepos\FrankWarius\webtrees\vendor\illuminate\database\Connection.php(720): Illuminate\Database\Connection->runQueryCallback()

1 D:\GitRepos\FrankWarius\webtrees\vendor\illuminate\database\Connection.php(534): Illuminate\Database\Connection->run()

2 D:\GitRepos\FrankWarius\webtrees\vendor\illuminate\database\Connection.php(498): Illuminate\Database\Connection->statement()

3 D:\GitRepos\FrankWarius\webtrees\vendor\illuminate\database\Query\Builder.php(3220): Illuminate\Database\Connection->insert()

4 D:\GitRepos\FrankWarius\webtrees\app\SessionDatabaseHandler.php(95): Illuminate\Database\Query\Builder->insert()

5 [internal function]: Fisharebest\Webtrees\SessionDatabaseHandler->write()

6 D:\GitRepos\FrankWarius\webtrees\app\Session.php(146): session_regenerate_id()

7 D:\GitRepos\FrankWarius\webtrees\app\Auth.php(189): Fisharebest\Webtrees\Session::regenerate()

8 D:\GitRepos\FrankWarius\webtrees\app\Http\RequestHandlers\SetupWizard.php(429): Fisharebest\Webtrees\Auth::login()

9 D:\GitRepos\FrankWarius\webtrees\app\Http\RequestHandlers\SetupWizard.php(357): Fisharebest\Webtrees\Http\RequestHandlers\SetupWizard->createConfigFile()

10 D:\GitRepos\FrankWarius\webtrees\app\Http\RequestHandlers\SetupWizard.php(193): Fisharebest\Webtrees\Http\RequestHandlers\SetupWizard->step6Install()

11 D:\GitRepos\FrankWarius\webtrees\app\Http\Middleware\ReadConfigIni.php(68): Fisharebest\Webtrees\Http\RequestHandlers\SetupWizard->handle()

12 D:\GitRepos\FrankWarius\webtrees\vendor\oscarotero\middleland\src\Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\ReadConfigIni->process()

13 D:\GitRepos\FrankWarius\webtrees\app\Http\Middleware\SecurityHeaders.php(48): Middleland\Dispatcher->handle()

14 D:\GitRepos\FrankWarius\webtrees\vendor\oscarotero\middleland\src\Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\SecurityHeaders->process()

15 D:\GitRepos\FrankWarius\webtrees\app\Http\Middleware\EmitResponse.php(57): Middleland\Dispatcher->handle()

16 D:\GitRepos\FrankWarius\webtrees\vendor\oscarotero\middleland\src\Dispatcher.php(136): Fisharebest\Webtrees\Http\Middleware\EmitResponse->process()

17 D:\GitRepos\FrankWarius\webtrees\vendor\oscarotero\middleland\src\Dispatcher.php(118): Middleland\Dispatcher->handle()

18 D:\GitRepos\FrankWarius\webtrees\app\Webtrees.php(275): Middleland\Dispatcher->dispatch()

19 D:\GitRepos\FrankWarius\webtrees\app\Webtrees.php(262): Fisharebest\Webtrees\Webtrees::dispatch()

20 D:\GitRepos\FrankWarius\webtrees\index.php(51): Fisharebest\Webtrees\Webtrees->httpRequest()

21 {main}

Die webtrees Entwickler sind sehr daran interessiert aus diesen Fehler zu lernen. Wenn Sie diese kontaktieren, dann werden diese Ihnen helfen das Problem zu lösen.

fisharebest commented 6 months ago

Bei der Konvertierung eines nvarchar-Datentyps in einen datetime-Datentyp liegt der Wert außerhalb des gültigen Bereichs.

"When converting an nvarchar data type to a datetime data type, the value is out of range."

2023-12-31 15:54:50 looks OK.

Perhaps it is using a local format? Perhaps american? yyyy-dd-mm

Can you tell me if works tomorrow? 2024-01-01

FrankWarius commented 6 months ago

the MS SQL 2022 developer installation is out of the box on a fresh Windows 11 Business (23H2) DE installation. It seems that the default language on SQL server is also DE (see error message). Date Format DE is yyy-mm-tt hh:mm:ss (like UTC?)

I remember 2 years ago I had a similar issue with c# and apple helath XML export. I'll will have a look on that stuff this morning.

FrankWarius commented 6 months ago

see https://stackoverflow.com/questions/15705983/how-to-change-default-language-for-sql-server

the default language of my MS SQL User "Webtrees" was "German". I changed it to "English US" and will start a fresh Webtrees instance later this day

FrankWarius commented 6 months ago

Changing the Default language of the MS SQL webtrees user to "English" fixes the issue.

I think, we should work in webtrees only with langid / language 0 / "us-english" an have a check in Setup Wizzard for correct language setting

fisharebest commented 6 months ago

We set the language to English during normal operation.

We don't do this during setup.