Recent

Author Topic: SQlite3conn + foreign_key=on  (Read 3202 times)

christopher

  • Newbie
  • Posts: 2
SQlite3conn + foreign_key=on
« on: February 17, 2013, 03:56:21 pm »
Ola, estou com dificuldades em ativar o uso de foreign keys na conexão com SQlite através do componente SQLite3conn (aba SQLdb).

http://www.lazarus.freepascal.org/index.php/topic,15477.msg83176.html#msg83176

tentei as soluções propostas no link acima mas não funcionou, já tentei editar e substituir  o arquivo sqlite3conn.pp e passar o parametro "foreign_keys=on" sem sucesso simplesmente quando executo a consulta "PRAGMA foreign_keys;" ela sempre retorna "zero", quando o correto seria retorna "um" confirmando que o uso de foreign keys esta ativado

desde já agradeço de pela atenção

christopher

  • Newbie
  • Posts: 2
Re: SQlite3conn + foreign_key=on
« Reply #1 on: February 17, 2013, 07:59:09 pm »
Bom, pessoal não sei exatamente como fiz mas agora está funcionando, caso alguém esteja com o mesmo problema faça uma copia de segurança do arquivo "sqlite3conn.pp" que no windows fica no diretório "C:\lazarus\fpc\2.6.0\source\packages\fcl-db\src\sqldb\sqlite", abra o lazarus, va no menu Arquivo/Fechar todos os arquivos do editor, depois abra o "sqlite3conn.pp" pressione Ctrl +f e pesquise por "DoInternalConnect" altere a procedure para que fique da seguinte forma

procedure TSQLite3Connection.DoInternalConnect;
var
  str1: string;
begin
  if Length(databasename)=0 then
    DatabaseError(SErrNoDatabaseName,self);
  InitializeSqlite(SQLiteLibraryName);
  str1:= databasename;
  checkerror(sqlite3_open(pchar(str1),@fhandle));
    //Acrescente apenas as duas linhas seguintes autor Martin Schreiber
  if Params.IndexOfName('foreign_keys') <> -1 then
    execsql('PRAGMA foreign_keys =  '+Params.Values['foreign_keys']);
end;

Salve as alterações vá no menu  Executar\Construir arquivo, reinicie o Lazarus, vá até o seu componente TSQLite3Connection, clique sobre ele, atraves do Object Inspector vá em Propriedades/Params e digite

foreign_keys=on

Espero ter ajudado

“Você deve ser a própria mudança que deseja ver no mundo”
Mahatma Gandhi

 

TinyPortal © 2005-2018