Гость
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Подскажите что за ошибка, проблема с SQLite / 4 сообщений из 4, страница 1 из 1
14.03.2013, 18:04
    #38184454
Dokee
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите что за ошибка, проблема с SQLite
Вроди бы простой пример на делфи с базой данных SQLite http://www.delphi.int.ru/articles/43/ Всё написал как там, а у меня при запуске выскакивает ошибка Error executing SQL "PRAGMA SYNCHRONOUS=NORMAL;" : дальше ийроглифы... Обьясните что к чему... Буду очень благодарен. Ах, да Delphi XE2
...
Рейтинг: 0 / 0
14.03.2013, 19:35
    #38184622
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите что за ошибка, проблема с SQLite
Dokee,

все вызовы api функций SQLite в которых есть PChar(string) заменить на PChar(AnsiToUTF8(string)), т.е. нужно заменить

Код: pascal
1.
Sqlite3_Prepare(self.fDB, PChar(SQL), -1, Stmt, NextSQLStatement)



на

Код: pascal
1.
Sqlite3_Prepare(self.fDB, PChar(AnsiToUtf8(SQL)), -1, Stmt, NextSQLStatement)



и везде дальше по коду
...
Рейтинг: 0 / 0
14.03.2013, 20:28
    #38184696
Dokee
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите что за ошибка, проблема с SQLite
pit_alex,

Спс, вроде работает... Ток терь он сразу выдает При создании базы произошла ошибка. И форму не открывает :( Вроде написал всё как там... Подскажите плиз что не так? У меня просто курсавую скоро сдавать... А я по SQLitу ещё не разобрался :(

unit Unit1;

interface

uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, SQLite3, SQLiteTable3;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Memo1: TMemo;
Edit1: TEdit;
procedure FormCreate(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

Var sldb: TSQLiteDatabase;

procedure TForm1.Button1Click(Sender: TObject);
const
n = 100; // сколько записей хотим добавить
var i: integer;
t: cardinal; //для подсчёта времени
begin
t := GetTickCount;
for i := 0 to n - 1 do
sldb.ExecSQL('insert into test (t1,t2) values("'+inttostr(random(1000))+'","'+inttostr(random(1000))+'")');
t := GetTickCount - t;
ShowMessage(Format('Добавленно %d записей за %d мс',[n,t]));
end;

procedure TForm1.Button2Click(Sender: TObject);
var sltb:TSQLiteTable;
i:integer;
begin
Memo1.Lines.BeginUpdate;
try
Memo1.Clear;
sltb := sldb.GetTable('select t1,t2 from test where t1 like "'+Edit1.Text+'%"');
try
for i := 0 to sltb.Count - 1 do
begin
Memo1.Lines.Add(sltb.FieldAsString(0)+', '+sltb.FieldAsString(0));
sltb.Next;
end;
finally
sltb.Free;
end;
finally
Memo1.Lines.EndUpdate;
end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
sldb := TSQLiteDatabase.Create('test.db');
try
if not sldb.TableExists('test') then
sldb.ExecSQL('CREATE TABLE Test (id INTEGER PRIMARY KEY, T1 TEXT, T2 TEXT)');
except
ShowMessage('При создании базы произошла ошибка.');
Application.Terminate;
end;
end;

procedure TForm1.FormDestroy(Sender: TObject);
begin
sldb.Free;
end;
end.
...
Рейтинг: 0 / 0
15.03.2013, 00:01
    #38184846
pit_alex
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Подскажите что за ошибка, проблема с SQLite
Dokee,
там есть пример возьми и используй, если надо курсач написать то это в работу тут никто не будет за тебя делать курсач, дальше пойдут советы в армию, в дворники и т.д., лучше сам разберись
...
Рейтинг: 0 / 0
Форумы / SQLite [игнор отключен] [закрыт для гостей] / Подскажите что за ошибка, проблема с SQLite / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]