Git Product home page Git Product logo

Comments (5)

synopse avatar synopse commented on May 25, 2024

Please provide the compiler used, the DB involved and some minimal code to reproduce.

from mormot.

Fernando-Roberto avatar Fernando-Roberto commented on May 25, 2024

** Database:
mysql version 8.0.20-0ubuntu0.20.04.1 for Linux on x86_64 ((Ubuntu))

** IDE:
Lazarus version 2.1.0

** Compiler:
FPC version 3.3.1

** Mormot:
07/07/2020

** Model:

unit uclienteAcompanhamento;

{$mode objfpc}{$H+}

interface

uses
Classes, SysUtils, mORMot, SynCommons,
ucliente, uusuario;

type
TSQLclienteAcompanhamento = class(TSQLRecord)
protected
fcliente: TSQLcliente;
fusuario: TSQLusuario;
fmensagem: RawUTF8;
fdtCadastro: TDateTime;
published
property cliente: TSQLcliente read fcliente write fcliente;
property usuario: TSQLusuario read fusuario write fusuario;
property mensagem: RawUTF8 index 2147483647 read fmensagem write fmensagem;
property dtCadastro: TDateTime read fdtCadastro write fdtCadastro;
end;

implementation

end.

** RestUnit:

procedure TRestServerClient.StartDB(const vIpDataBase: RawUTF8; const vIdEmpresa: Integer; const vCreateMissingTables: Boolean);
var
vDadosConexao: TDadosConexao;
begin
vDadosConexao.vServerIP := '';
//****************************************************************************
//Verifica se o banco de dados existe
vRestServerAdm.CreateDB_Cliente(vIpDataBase, vIdEmpresa);
//****************************************************************************
// Cria o modelo da base de dados contendo a classe/tabela
// TSQLGrupoProd
fModel := CriarModelo(vIdEmpresa);
//****************************************************************************
vRestServerAdm.ConfigConnectionData_Client(vDadosConexao, vIpDataBase, vIdEmpresa);

fConnectionDB :=
TSQLDBZEOSConnectionProperties.Create(
vDadosConexao.vServerName,
vDadosConexao.vDataBaseName,
vDadosConexao.vUserName,
vDadosConexao.vUserPass);

fConnectionDB.ThreadingMode := tmThreadPool;
//****************************************************************************
fConnectionDB.ConnectionTimeOutMinutes := 30;
fConnectionDB.ReconnectAfterConnectionError:= True;
//****************************************************************************
VirtualTableExternalRegisterAll(fModel, fConnectionDB, [regMapAutoKeywordFields]);
//****************************************************************************
fRestClientDB := TSQLRestServerDB.Create(fModel, SQLITE_MEMORY_DATABASE_NAME);

fRestClientDB.URIPagingParameters.StartIndex := 'START=';
fRestClientDB.URIPagingParameters.Results := 'LIMIT=';
fRestClientDB.URIPagingParameters.SendTotalRowsCountFmt := cSendTotalRowsCountFmt;
//****************************************************************************
fRestClientDB.AcquireExecutionMode[execORMGet] := amBackgroundORMSharedThread;
fRestClientDB.AcquireExecutionMode[execORMWrite] := amBackgroundORMSharedThread;

fRestClientDB.Options:= [rsoRedirectForbiddenToAuth];
fRestClientDB.NoAJAXJSON:= False; //True;

fRestClientDB.OnAfterURI:= @AfterURI;
fRestClientDB.OnBeforeURI:= @BeforeURI;

fRestClientDB.JWTForUnauthenticatedRequest := vRestServerAdm.pJWTEngine;

//****************************************************************************
if vCreateMissingTables then
fRestClientDB.CreateMissingTables(0);

end;

from mormot.

synopse avatar synopse commented on May 25, 2024

What is the error class and message?

from mormot.

Fernando-Roberto avatar Fernando-Roberto commented on May 25, 2024

Table "clienteAcompanhamento" and fields exists.

On execute "CreateMissingTables(0);":

IDE Error message:
Project max_web_server raised exception class 'External: SIGSEGV'.
At address 41B108

Postman Error result message:
{
"errorCode": 500,
"error": {
"ESQLite3Exception": {
"ClassName": "ESQLite3Exception",
"Address": " $0000000000670306 SQLITE3_CHECK, line 5391 of ../mORMot/SynSQLite3.pas",
"ErrorCode": 1,
"SQLite3ErrorCode": "secERROR",
"Message": "Error SQLITE_ERROR (1) [Step] using 3.32.3 - TSQLRestStorageExternal.Create: TSQLclienteAcompanhamento: unable to create external missing field clienteAcompanhamento.cliente - SQL="ALTER TABLE clienteAcompanhamento ADD cliente bigint", extended_errcode=1"
}
}
}

Console log:
[1;34mGeração de arquivo de log: Não
[1;37m
Servidor rodando na porta: 8080
http://localhost:8080/maxdata

[1;32mData Build: 10/07/2020 06:54:21
Pressione [Enter] para encerrar o servidor.

[1;37m
[0;33m20200710 06550453 SQL SynSQLite3.TSQLDatabase(7ffff7fa6790) 27us backup_2020071006.db3 PRAGMA page_size=4096 = true
[0;37m[0;33m20200710 06550453 SQL SynSQLite3.TSQLDatabase(7ffff7fa6790) 214us backup_2020071006.db3 PRAGMA cache_size=1 = true
[0;37m[0;33m20200710 06550453 SQL SynSQLite3.TSQLDatabase(7ffff7fa6790) 53us backup_2020071006.db3 select count() from sqlite_master = true
[0;37m[0;33m20200710 06550453 SQL SynSQLite3.TSQLDatabase(7ffff7fa6790) 6us backup_2020071006.db3 PRAGMA locking_mode=EXCLUSIVE; = true
[0;37m[0;33m20200710 06550453 SQL SynSQLite3.TSQLDatabase(7ffff7fa6790) 9us backup_2020071006.db3 PRAGMA synchronous=0 = true
[0;37m[0;33m20200710 06550453 SQL SynSQLite3.TSQLDatabase(7ffff7fa6790) 8us backup_2020071006.db3 PRAGMA journal_mode=MEMORY = true
[0;37m[0;33m20200710 06550453 SQL SynSQLite3.TSQLDatabase(7ffff7fa6790) 8us backup_2020071006.db3 PRAGMA temp_store=MEMORY = true
[0;37m
[0;32mBackup DB ADM: OK
[1;37m
[0;33m20200710 06550646 SQL SynDBZeos.TSQLDBZEOSStatement(7ffff7f1fdb0) ExecutePrepared 1.01ms SELECT NOW()
[0;37m
[0;33m20200710 06550649 SQL SynDBZeos.TSQLDBZEOSStatement(7ffff7f1ff50) ExecutePrepared 47.19ms wr=1 CREATE DATABASE IF NOT EXISTS max_web_1 CHARACTER SET utf8 COLLATE utf8_general_ci
[0;37m
[0;33m20200710 06550650 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 183us select count(
) from sqlite_master = true
[0;37m[0;33m20200710 06550650 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 34us returned 0 rows SELECT name FROM sqlite_master WHERE type='table' AND name NOT LIKE 'sqlite_%';
[0;37m[0;33m20200710 06550650 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 8us BEGIN TRANSACTION;
[0;37m
[0;33m20200710 06550656 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 103.33ms CREATE VIRTUAL TABLE cartao USING External(bandeira TEXT COLLATE SYSTEMNOCASE, ativo INTEGER, diaPgto INTEGER, aliqTaxa FLOAT, tipo INTEGER, tef INTEGER, tefMultiplo INTEGER, tefDiasPrimeiraParcela INTEGER, tefDiasEntreParcelas INTEGER);
[0;37m
[0;33m20200710 06550661 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 75.60ms CREATE VIRTUAL TABLE cfop USING External(cfop INTEGER, descricao TEXT COLLATE SYSTEMNOCASE, ativo INTEGER, tipoUf INTEGER, tipoPisCofins INTEGER);
[0;37m
[0;33m20200710 06550702 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 50.41ms CREATE VIRTUAL TABLE cliente USING External(nome TEXT COLLATE SYSTEMNOCASE, ativo INTEGER, fantasia TEXT COLLATE SYSTEMNOCASE, tipoPessoa INTEGER, tipoCadastro INTEGER, clienteGrupoId INTEGER, clienteTipoId INTEGER, cpfCnpj TEXT COLLATE SYSTEMNOCASE, rgIe TEXT COLLATE SYSTEMNOCASE, rgIeUf TEXT COLLATE SYSTEMNOCASE, dataCadastro TEXT COLLATE ISO8601, dataNascimento TEXT COLLATE ISO8601, vlrLimiteCredito FLOAT, obsVenda TEXT COLLATE SYSTEMNOCASE, fone TEXT COLLATE SYSTEMNOCASE, fax TEXT COLLATE SYSTEMNOCASE, celular TEXT COLLATE SYSTEMNOCASE, site TEXT COLLATE SYSTEMNOCASE, email TEXT COLLATE SYSTEMNOCASE, imgFoto BLOB, sexo TEXT COLLATE SYSTEMNOCASE, estadoCivil TEXT COLLATE SYSTEMNOCASE, naturalidadeCidade TEXT COLLATE SYSTEMNOCASE, naturalidadeUf TEXT COLLATE SYSTEMNOCASE, nomePai TEXT COLLATE SYSTEMNOCASE, nomeMae TEXT COLLATE SYSTEMNOCASE, qtdDependentes INTEGER, dadosProfNomeEmpresa TEXT COLLATE SYSTEMNOCASE, dadosProfCnpj TEXT COLLATE SYSTEMNOCASE, dadosProfFone TEXT COLLATE SYSTEMNOCASE, dadosProfDataAdmissao TEXT COLLATE ISO8601, dadosProfOcupacao TEXT COLLATE SYSTEMNOCASE, dadosProfCargo TEXT COLLATE SYSTEMNOCASE, dadosProfVlrRendaMensal FLOAT, dadosProfVlrOutrasRendas FLOAT, dadosProfEndereco TEXT COLLATE SYSTEMNOCASE, dadosProfEnderecoNumero TEXT COLLATE SYSTEMNOCASE, dadosProfEnderecoBairro TEXT COLLATE SYSTEMNOCASE, dadosProfEnderecoCep TEXT COLLATE SYSTEMNOCASE, dadosProfEnderecoCidadeCodigoIBGE INTEGER, dadosBancNumBanco INTEGER, dadosBancNomeBanco TEXT COLLATE SYSTEMNOCASE, dadosBancAgencia TEXT COLLATE SYSTEMNOCASE, dadosBancNumConta TEXT COLLATE SYSTEMNOCASE, dadosBancTipoConta TEXT COLLATE SYSTEMNOCASE, dadosBancDataConta TEXT COLLATE ISO8601, dadosBancFoneAg TEXT COLLATE SYSTEMNOCASE, dadosBancObs TEXT COLLATE SYSTEMNOCASE, obsGeral TEXT COLLATE SYSTEMNOCASE, tipoRegimeApuracao INTEGER, nomeConjuge TEXT COLLATE SYSTEMNOCASE, inscricaoMunicipal TEXT COLLATE SYSTEMNOCASE, descontoAutoAplicar INTEGER, descontoAutoAliq FLOAT, obsNfe TEXT COLLATE SYSTEMNOCASE, dataCasamento TEXT COLLATE ISO8601, consumidorFinal INTEGER);
[0;37m
[1;31m20200710 06550705 EXC EZMySQLSilentException ("SQL Error: Table 'max_web_1.clienteacompanhamento' doesn't exist") [] at $00000000007BF31D CHECKMYSQLERROR, line 305 of ../../src/dbc/ZDbcMySqlUtils.pas $00000000007B3189 EXECUTEQUERYPREPARED, line 355 of ../../src/dbc/ZDbcMySqlStatement.pas $00000000007A8C21 EXECUTEQUERY, line 3801 of ../../src/dbc/ZDbcStatement.pas $00000000007C2F6E UNCACHEDGETTABLES, line 1098 of ../../src/dbc/ZDbcMySqlMetadata.pas $00000000007709B1 GETTABLES, line 2914 of ../../src/dbc/ZDbcMetadata.pas $00000000007C357A UNCACHEDGETCOLUMNS, line 1238 of ../../src/dbc/ZDbcMySqlMetadata.pas $00000000007711B1 GETCOLUMNS, line 3172 of ../../src/dbc/ZDbcMetadata.pas $000000000066414C GETFIELDS, line 733 of ../mORMot/SynDBZeos.pas $000000000063E25D GETFIELDS, line 699 of ../mORMot/SQLite3/mORMotDB.pas $000000000063D88E CREATE, line 750 of ../mORMot/SQLite3/mORMotDB.pas $000000000060BB59 CREATE, line 51211 of ../mORMot/SQLite3/mORMot.pas $0000000000580A58 VT_CREATE, line 2069 of ../mORMot/SQLite3/mORMotSQLite3.pas $00000000008C1783
[0;37m
[1;31m20200710 06550849 EXC EZSQLException ("SQL Error: Table 'clienteAcompanhamento' already exists") [] at $00000000007BF3A1 CHECKMYSQLERROR, line 308 of ../../src/dbc/ZDbcMySqlUtils.pas $00000000007B3437 EXECUTEUPDATEPREPARED, line 396 of ../../src/dbc/ZDbcMySqlStatement.pas $000000000066657E EXECUTEPREPARED, line 1138 of ../mORMot/SynDBZeos.pas $0000000000642E5B EXECUTEDIRECT, line 1619 of ../mORMot/SQLite3/mORMotDB.pas $000000000063DA51 CREATE, line 770 of ../mORMot/SQLite3/mORMotDB.pas $000000000060BB59 CREATE, line 51211 of ../mORMot/SQLite3/mORMot.pas $0000000000580A58 VT_CREATE, line 2069 of ../mORMot/SQLite3/mORMotSQLite3.pas $00000000008C1783
[0;37m
[1;31m20200710 06551002 EXC EZSQLException ("SQL Error: Duplicate column name 'cliente'") [] at $00000000007BF3A1 CHECKMYSQLERROR, line 308 of ../../src/dbc/ZDbcMySqlUtils.pas $00000000007B3437 EXECUTEUPDATEPREPARED, line 396 of ../../src/dbc/ZDbcMySqlStatement.pas $000000000066657E EXECUTEPREPARED, line 1138 of ../mORMot/SynDBZeos.pas $0000000000642E5B EXECUTEDIRECT, line 1619 of ../mORMot/SQLite3/mORMotDB.pas $000000000063DC64 CREATE, line 793 of ../mORMot/SQLite3/mORMotDB.pas $000000000060BB59 CREATE, line 51211 of ../mORMot/SQLite3/mORMot.pas $0000000000580A58 VT_CREATE, line 2069 of ../mORMot/SQLite3/mORMotSQLite3.pas $00000000008C1783
[0;37m
[1;31m20200710 06551120 EXC EORMException {"Message":"TSQLRestStorageExternal.Create: TSQLclienteAcompanhamento: unable to create external missing field clienteAcompanhamento.cliente - SQL="ALTER TABLE clienteAcompanhamento ADD cliente bigint""} [] at $000000000063DC77 CREATE, line 794 of ../mORMot/SQLite3/mORMotDB.pas $000000000060BB59 CREATE, line 51211 of ../mORMot/SQLite3/mORMot.pas $0000000000580A58 VT_CREATE, line 2069 of ../mORMot/SQLite3/mORMotSQLite3.pas $00000000008C1783
[0;37m
[1;31m20200710 06551223 EXC ESQLite3Exception {"ErrorCode":1,"SQLite3ErrorCode":"secERROR","Message":"Error SQLITE_ERROR (1) [Step] using 3.32.3 - TSQLRestStorageExternal.Create: TSQLclienteAcompanhamento: unable to create external missing field clienteAcompanhamento.cliente - SQL="ALTER TABLE clienteAcompanhamento ADD cliente bigint", extended_errcode=1"} [] at $0000000000670306 SQLITE3_CHECK, line 5391 of ../mORMot/SynSQLite3.pas $000000000066FA8A STEP, line 5311 of ../mORMot/SynSQLite3.pas $000000000066DF15 EXECUTE, line 4907 of ../mORMot/SynSQLite3.pas $000000000066E016 EXECUTE, line 4927 of ../mORMot/SynSQLite3.pas $0000000000669BBC EXECUTE, line 3993 of ../mORMot/SynSQLite3.pas $000000000057A136 CREATEMISSINGTABLES, line 848 of ../mORMot/SQLite3/mORMotSQLite3.pas $0000000000512DDA STARTDB, line 348 of urestserverclient.pas $0000000000512F11 CREATE, line 370 of urestserverclient.pas $0000000000937488 TOKEN, line 231 of ../serviceAdm/uusuarioadmservice.pas $0000000000582C4A CALLMETHOD $00007FFFF4595A60
[0;37m[0;33m20200710 06551251 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 5.79s CREATE VIRTUAL TABLE clienteAcompanhamento USING External(cliente INTEGER, usuario INTEGER, mensagem TEXT COLLATE SYSTEMNOCASE, dtCadastro TEXT COLLATE ISO8601);
[0;37m[0;33m20200710 06551251 SQL SynSQLite3.TSQLDatabase(7ffff7fa93f0) 115us ROLLBACK TRANSACTION;
[0;37m
[1;31m20200710 06551255 EXC EJSONParser ("Error at line 1, Pos 415:Expected , or ], got token "ALTER".") [] at $000000000085BACA $000000000085B850 $00000000004902BA VERIFICA_AFTERURI, line 1134 of urestserveradm.pas $000000000048CC87 AFTERURI_ADM, line 145 of urestserveradm.pas $00000000005E1243 URI, line 41505 of ../mORMot/SQLite3/mORMot.pas $000000000063B426 REQUEST, line 935 of ../mORMot/SQLite3/mORMotHttpServer.pas $00000000006B8586 REQUEST, line 6141 of ../mORMot/SynCrtSock.pas $00000000006B9B52 PROCESS, line 6593 of ../mORMot/SynCrtSock.pas $00000000006BACD0 EXECUTE, line 6803 of ../mORMot/SynCrtSock.pas
[0;37m
[1;31m20200710 06554348 EXCOS EAccessViolation (41c53d) [] at $000000000041B108 $00000000004902BA VERIFICA_AFTERURI, line 1134 of urestserveradm.pas $000000000048CC87 AFTERURI_ADM, line 145 of urestserveradm.pas $00000000005E1243 URI, line 41505 of ../mORMot/SQLite3/mORMot.pas $000000000063B426 REQUEST, line 935 of ../mORMot/SQLite3/mORMotHttpServer.pas $00000000006B8586 REQUEST, line 6141 of ../mORMot/SynCrtSock.pas $00000000006B9B52 PROCESS, line 6593 of ../mORMot/SynCrtSock.pas $00000000006BACD0 EXECUTE, line 6803 of ../mORMot/SynCrtSock.pas
[0;37m

from mormot.

Fernando-Roberto avatar Fernando-Roberto commented on May 25, 2024

If I remove table "clienteAcompanhamento", mormot can't create it, with another error message.

from mormot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.