Hello: -------------- TestDb.Open; sqlScript1.Execute; // ==> SIGSEGV -------------- It uses SQLlite3 connector. No matter what are the contents of the script I get "External: SIGSEGV" and jumps to debug assembler with a lot of ??????. I can't enter step by step into function, or check anything., I only get SIGSEGV. The SQL3lite.dll is in the executable directory and in the lazarus.exe directory. I have installed the package "sqlite3laz" v 0.4. I have changed the SqlScript by an SQLQuery, the same error
I have attached the form. This is the first time I try to work with SQldb and probably I'm doing something stupid or missing something evident, but I can't see what. Nevertheless SIGSEGV is not very informative. Any hint? Lazarus V.1.8.0 FPC 3.0.4 SVN: 56594 i386-win32/win64 Runing on windows 7 -- Saludos Santiago A.
object Form1: TForm1 Left = 256 Height = 322 Top = 128 Width = 558 Caption = 'Form1' ClientHeight = 322 ClientWidth = 558 LCLVersion = '1.8.0.6' object Button1: TButton Left = 129 Height = 25 Top = 181 Width = 75 Caption = 'Button1' OnClick = Button1Click TabOrder = 0 end object CabdiariTb: TDbf FilePath = 'G:\OBJECT\001\' IndexDefs = <> ReadOnly = True TableName = 'CABDIARI.DBF' TableLevel = 4 FilterOptions = [] left = 22 top = 17 end object LinDiariTb: TDbf FilePath = 'G:\OBJECT\001\' IndexDefs = <> ReadOnly = True TableName = 'LINDIARI.DBF' TableLevel = 4 FilterOptions = [] left = 96 top = 17 object LinDiariTbF_ANNOASI: TStringField FieldKind = fkData FieldName = 'F_ANNOASI' Index = 0 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 4 end object LinDiariTbF_NUMASI: TStringField FieldKind = fkData FieldName = 'F_NUMASI' Index = 1 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 6 end object LinDiariTbF_FECHASI: TDateField FieldKind = fkData FieldName = 'F_FECHASI' Index = 2 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False end object LinDiariTbF_NUMDOC: TStringField FieldKind = fkData FieldName = 'F_NUMDOC' Index = 3 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 12 end object LinDiariTbF_FECHDOC: TDateField FieldKind = fkData FieldName = 'F_FECHDOC' Index = 4 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False end object LinDiariTbF_CUENTA: TStringField FieldKind = fkData FieldName = 'F_CUENTA' Index = 5 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 10 end object LinDiariTbF_IMPORTE: TFloatField FieldKind = fkData FieldName = 'F_IMPORTE' Index = 6 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False MaxValue = 0 MinValue = 0 Precision = 2 end object LinDiariTbF_DH: TStringField FieldKind = fkData FieldName = 'F_DH' Index = 7 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 1 end object LinDiariTbF_OBSERLIN: TStringField FieldKind = fkData FieldName = 'F_OBSERLIN' Index = 8 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 50 end object LinDiariTbF_CONCILIA: TBooleanField FieldKind = fkData FieldName = 'F_CONCILIA' Index = 9 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False DisplayValues = 'True;False' end object LinDiariTbF_LIBROIVA: TStringField FieldKind = fkData FieldName = 'F_LIBROIVA' Index = 10 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 1 end object LinDiariTbF_TIPOCOD: TStringField FieldKind = fkData FieldName = 'F_TIPOCOD' Index = 11 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 1 end object LinDiariTbF_CODPERSO: TStringField FieldKind = fkData FieldName = 'F_CODPERSO' Index = 12 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 6 end object LinDiariTbF_NUMIVA: TStringField FieldKind = fkData FieldName = 'F_NUMIVA' Index = 13 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 6 end object LinDiariTbF_TIPIVA: TStringField FieldKind = fkData FieldName = 'F_TIPIVA' Index = 14 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 1 end object LinDiariTbF_C90: TStringField FieldKind = fkData FieldName = 'F_C90' Index = 15 LookupCache = False ProviderFlags = [pfInUpdate, pfInWhere] ReadOnly = False Required = False Size = 10 end end object SaldosTb: TDbf FilePath = 'G:\OBJECT\001\' IndexDefs = <> ReadOnly = True TableName = 'SALDOS.DBF' TableLevel = 4 FilterOptions = [] left = 176 top = 17 end object CuentasTb: TDbf FilePath = 'G:\OBJECT\001\' IndexDefs = <> ReadOnly = True TableName = 'CUENTAS.DBF' TableLevel = 4 FilterOptions = [] left = 240 top = 17 end object ContabDb: TSQLite3Connection Connected = False LoginPrompt = False DatabaseName = 'C:\temp\importadbf\datos\CONTAB.DAT' KeepConnection = False Transaction = SQLTransaction1 left = 386 top = 29 end object SQLTransaction1: TSQLTransaction Active = False Database = ContabDb left = 472 top = 29 end object SQLScript1: TSQLScript DataBase = ContabDb Transaction = SQLTransaction1 UseDollarString = False Directives.Strings = ( 'SET TERM' 'COMMIT WORK' 'COMMIT RETAIN' 'COMMIT' '#IFDEF' '#IFNDEF' '#ELSE' '#ENDIF' '#DEFINE' '#UNDEF' '#UNDEFINE' ) Script.Strings = ( 'create table cuentas' '(cuenta varchar(10) not null,' ' nombre varchar(40) not null,' ' private key (cuenta));' '' 'create table apunte' '(numasi integer not null' ' linea integer not null,' ' refasi integer not null,' ' fecha date not null,' ' cuenta varchar(10) not null,' ' importe numeric(15,2) not null,' ' observacion varchar(60) not null,' ' private key (numasi,linea));' ) Terminator = ';' CommentsinSQL = True UseSetTerm = True UseCommit = True UseDefines = True left = 384 top = 104 end object SQLQuery1: TSQLQuery FieldDefs = <> Database = ContabDb Transaction = SQLTransaction1 SQL.Strings = ( 'create table cuentas' '(cuenta varchar(10) not null,' ' nombre varchar(40) not null,' ' private key (cuenta));' '' ) Params = <> left = 331 top = 189 end end
unit main; {$mode objfpc}{$H+} interface uses Classes, SysUtils, dbf, sqldb, db, sqlite3conn, FileUtil, Forms, Controls, Graphics, Dialogs, StdCtrls; type { TForm1 } TForm1 = class(TForm) Button1: TButton; CabdiariTb: TDbf; LinDiariTb: TDbf; LinDiariTbF_ANNOASI: TStringField; LinDiariTbF_C90: TStringField; LinDiariTbF_CODPERSO: TStringField; LinDiariTbF_CONCILIA: TBooleanField; LinDiariTbF_CUENTA: TStringField; LinDiariTbF_DH: TStringField; LinDiariTbF_FECHASI: TDateField; LinDiariTbF_FECHDOC: TDateField; LinDiariTbF_IMPORTE: TFloatField; LinDiariTbF_LIBROIVA: TStringField; LinDiariTbF_NUMASI: TStringField; LinDiariTbF_NUMDOC: TStringField; LinDiariTbF_NUMIVA: TStringField; LinDiariTbF_OBSERLIN: TStringField; LinDiariTbF_TIPIVA: TStringField; LinDiariTbF_TIPOCOD: TStringField; SaldosTb: TDbf; CuentasTb: TDbf; ContabDb: TSQLite3Connection; SQLQuery1: TSQLQuery; SQLScript1: TSQLScript; SQLTransaction1: TSQLTransaction; procedure Button1Click(Sender: TObject); private { private declarations } public { public declarations } end; var Form1: TForm1; implementation {$R *.lfm} { TForm1 } procedure TForm1.Button1Click(Sender: TObject); begin ContabDb.Open; SQLQuery1.ExecSQL; // sqlScript1.Execute; end; end.
-- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus-ide.org https://lists.lazarus-ide.org/listinfo/lazarus