Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

dbExpress и MSSQL   Найти похожие ветки 

 
Asdor   (2004-01-23 13:43) [0]

Здравствуйте, мастера.

При работе с TSQLConnection и TSQLDataset (в Delphi 7) с Борландовским драйвером для MSSQL (последняя версия, которую я нашел - dbexpmss.dll 7.0.2.113 от 10 октября 2002 г., 7:01:00) в рантайме не открывается больше одного набора данных (хотя MaxStmtsPerConn=0). Выдает код ошибки 16389, текст ошибки #10#10.
В дизайне - открывается.
Это драйвер триальный? или глюк?

Есть ли бесплатные рабочие драйвера для dbExpress и MSSQL?
Если есть, то где их взять?

Спасибо.


 
Desdechado ©   (2004-01-23 13:52) [1]

поищи на bdn.borland.com


 
Asdor   (2004-02-24 18:39) [2]

Искал. Та самая последняя dll"ка - отуда.

Нашел еще dbxsda, но он платный...
Бесплатная версия выдает не более 6 полей из запроса.
Вот и вопрос - может кто пользуется бесплатной рабочей
версией и поделится... :)


 
Desdechado ©   (2004-02-24 18:53) [3]

а как ты из одного SQLDataset пытаешься одновременно 2 набора получить?


 
tesseract ©   (2004-02-25 09:29) [4]

Какие наборы данных? TSQLConnection - это соединение с базой данных, на него навешивается TSQLTable/TSQLDataSet - каждый из них пердоставляет доступ к ОДНОЙ таблице.


 
Asdor   (2004-02-25 10:45) [5]

Пример кода:
Кто-то снаружи вызывает метод объекта класса TClassMetadata.LoadClasses...

procedure TClassMetadata.LoadClasses(Connection:TSQLConnection; ClassId:Integer=-1);
var Query:TCustomSQLDataSet;
   AClass:PClassRecord;
   SQLStr:String;
   Idx:Integer;
begin
 If Assigned(Connection) then
 begin
   Query:=nil;
   SqlStr:="Select * from CLASSES";
   If ClassId<>-1 then
     SqlStr:=SqlStr+" where CLASS_ID="+IntToStr(ClassId);
   Connection.Execute(SqlStr, nil, @Query);
   if Assigned(Query) then
   try
     ... Какие-то полезные действия по заполнению AClass^...
     Далее вызывается процедура подгрузки атрибутов класса...
     LoadClassAtributes(Connection, AClass);
   finally
     Query.Free;
   end;
 end;
end;

procedure TClassMetadata.LoadClassAtributes(Connection:TSQLConnection; AClass:PCLassRecord);
var Query:TCustomSQLDataSet;
   Atr:PAtributeRecord;
   SqlStr:String;
   Idx:Integer;
begin
 If Assigned(Connection) and Assigned(AClass) then
 begin
   SqlStr:=Format("SELECT * FROM CLASS_ATRIBUTES "+
                  "WHERE CLASS_ID=%d "+
                  "ORDER BY CLASS_ATRIBUTE_NUMBER",[AClass^.ClassID]);
   Query:=nil;

-- Exceptinon здесь... Connection.Execute(SqlStr, nil, @Query);
   If Assigned(Query) then
   try
     ... Полезные действия
   finally
     Query.Free;
   end;
 end;
end;


 
Asdor   (2004-02-25 10:50) [6]

Еще... Получающиеся запросы - нормальные и спокойновыполняются в QueryAnalyser.
Если использовать другой SQL-driver (dbxsda.dll) - тоже все выполняется нормально, но он триальный (возвращает не больше 6 полей из запроса)...


 
Desdechado ©   (2004-02-25 11:04) [7]

TCustomSQLDataSet

Description

TCustomSQLDataSet encapsulates the properties, events, and methods for working with data accessed through dbExpress. Applications should not instantiate TCustomSQLDataSet objects. Instead, instantiate one of the descendant classes.


 
Artem03   (2004-02-25 11:10) [8]

Могу предложить только одно - используй компоненты с закладки
ADO. За 2 года никаких проблем замечено не было.


 
Asdor   (2004-02-25 11:33) [9]

To Desperado:
я его и не инстанцианирую... его мне даёт TSQLConnection... :)

To Artem0:
Да, видимо на АДО и придется переходить, если не купим платный драйвер... :) Хорошо хоть пока немного переписывать...



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.071 c
3-1077177096
AVP_opck
2004-02-19 10:51
2004.03.28
тригер на недопущение повторения ID


1-1078394851
Романов Р.В.
2004-03-04 13:07
2004.03.28
TLabel на TToolBar


14-1077630016
МАКСЮХА
2004-02-24 16:40
2004.03.28
Жду ответов и советов по написанию чата


14-1074853447
Дон Хуан
2004-01-23 13:24
2004.03.28
НЕТ личному автотранспорту!


7-1072523902
Nick_Omsk
2003-12-27 14:18
2004.03.28
Двунаправленная связь с компьютером