Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с SQLite Delphi в 2010 
:(
    Опции темы
AntonPavlov
Дата 9.7.2010, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 28.5.2010

Репутация: нет
Всего: нет



Такая проблема с SQLite в Delphi 2010. 
Для подключения к БД sqlite использую компоненты Zeos последней версии (правда версия альфа, но более ранние версии под дельфу 2010 не идут). Проблема в том, что когда подключаешься к базе (ставишь у Zconnection Connected в True), вылетает ошибка Library routine called out of sequence. Тоже самое если и проделать это в рантайме. Может кто в курсе в чем дело?
P.S. Можно предложить другие компоненты, но не платные (покупать не буду, а варез непойдет).
PM MAIL   Вверх
Frees
Дата 9.7.2010, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2233
Регистрация: 2.12.2005
Где: Екатеринбург

Репутация: 23
Всего: 54



может sqlite.dll не та?

Добавлено через 25 секунд
или в Zconnection не тот тип БД выбран


--------------------
Кольцов Виктор Владимирович
PM MAIL ICQ   Вверх
AntonPavlov
Дата 9.7.2010, 22:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 28.5.2010

Репутация: нет
Всего: нет



перепробовал кучу разных длл - всеравно не работает....
и все правильно Zconnection выбрано.... 
PM MAIL   Вверх
Keeper89
Дата 10.7.2010, 00:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2580
Регистрация: 26.2.2009

Репутация: 1
Всего: 58



Может это?
Цитата

К существенным проблемам можно отнести выполнение нескольких предложений
(statements) в рамках одного соединения (connection) в разных потоках
(threads). Приводит к ошибке "library routine called out of sequence" или
повреждениям в базе. Возможный обход - использование, например, thread-safe
ODBC драйвера - см. http://www.ch-werner.de/sqliteodbc/

http://www.sql.ru/forum/actualthread.aspx?...p;pg=-1#3648203

Это сообщение отредактировал(а) Keeper89 - 10.7.2010, 00:04


--------------------
PM MAIL WWW   Вверх
Демо
Дата 10.7.2010, 13:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 2
Всего: 50



Чем обусловлено использование Zeos?



--------------------
    
PM MAIL ICQ Skype   Вверх
AnalogXP
Дата 10.7.2010, 14:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 46
Регистрация: 23.9.2007

Репутация: нет
Всего: нет



С Zeos я тоже намучался - то работает, то нет. Поэтому пришлось отказаться в пользу этого
Доволен  smile 
PM MAIL   Вверх
AntonPavlov
Дата 11.7.2010, 00:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 86
Регистрация: 28.5.2010

Репутация: нет
Всего: нет



Чего то не врубаюсь я в ту штуку.... smile 
PM MAIL   Вверх
Демо
Дата 11.7.2010, 00:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1278
Регистрация: 3.11.2005

Репутация: 2
Всего: 50



Цитата(AntonPavlov @  11.7.2010,  00:05 Найти цитируемый пост)
Чего то не врубаюсь я в ту штуку.... 


Так и не ответил на вопрос.
В зависимости от ответа и решение - подойдёт ли тебе решение 
Цитата(AnalogXP @  10.7.2010,  14:51 Найти цитируемый пост)
Поэтому пришлось отказаться в пользу этого. 


Добавлено @ 00:43
Цитата(AntonPavlov @  11.7.2010,  00:05 Найти цитируемый пост)
Чего то не врубаюсь я в ту штуку.... 


Код

//открыть БД
procedure DBOpen(FilePath: String);
begin
  DBClose;
  DB := TSQLiteDatabase.Create(FilePath);
end;



Код

//Создать таблицу
procedure DBClearTable(const TableName: String);
begin
  DB.ExecSQL('DELETE FROM '+TableName);
end;



Код


function DBSelect(const Query: String): TSQliteTable;
begin
  try
   Result := DB.GetTable(Query);
  except
    Result := nil;
  end;
end;

var
  t: TSQLiteTable;
begin
  t := DBSelect('SELECT * FROM U WHERE inn='+QStr(Inn));



Код

procedure DBBeginTran;
begin
  DB.BeginTransaction;
end;

procedure DBCommit;
begin
  DB.Commit;
end;

procedure DBRollBack;
begin
  DB.Rollback;
end;

procedure DBClose;
begin
  FreeAndNil(DB);
end;



Код


function QStr(const Src: String): String;
begin
  Result := '"'+StringReplace(Src,'"','''',[rfReplaceAll])+'"';
end;

procedure InsertRecordOrg(Info: PCust); overload;
var
  s: AnsiString;
begin
  s := 'INSERT INTO Org ('+
        'OrgId,'+
        'OrgName,'+
        'Inn,'+
        'Kpp,'+
        'LastUpdate,'+
        'IsNew) VALUES ('+
        QStr(Info^.Id)+','+
        QStr(Info^.Name)+','+
        QStr(Info^.Inn)+','+
        QStr(Info^.Kpp)+','+
        QStr(FormatDateTime('dd.mm.yyyy',Now))+','+
        '1'+
        ')';
        DB.ExecSQL(s);
end;




Код

  t := uDB.DBSelect(s);
  try
    for i := 0 to t.Count-1 do
    begin
      New(p);
      p^.purchId := t.FieldByName['purchId'];
      p^.PurchName := t.FieldByName['purchName'];
      p^.CId := t.FieldByName['CId'];
      p^.purchAmount := t.FieldByName['purchAmount'];
      p^.CustName := t.FieldByName['CustName'];
      p^.purchDescription := t.FieldByName['purchDescription'];
      p^.AuctionBeginDate := t.FieldByName['AuctionBeginDate'];
      p^.AuctionEndDate := t.FieldByName['AuctionEndDate'];
      p^.DateSort := t.FieldByName['DateSort'];
      p^.StateName := t.FieldByName['purchStateName'];
      p^.Protocol2Msg := t.FieldByName['Protocol2Msg'];
      p^.RowHigh := 0;
      ListA.AddObject(p^.purchId,Pointer(p));
      t.Next;
    end;



Вот куски примеров...

Это сообщение отредактировал(а) Демо - 11.7.2010, 00:45


--------------------
    
PM MAIL ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0989 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.