Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.022 c
4-1073827542
Alien
2004-01-11 16:25
2004.03.28
WM_GETICON


6-1073545315
Nosov
2004-01-08 10:01
2004.03.28
Как получить список групп и пользователей домена ?


6-1073822070
Ермак
2004-01-11 14:54
2004.03.28
Программирование сокетов через WinAPI


1-1078405630
Алексей
2004-03-04 16:07
2004.03.28
D7 корежит русские буквы формах


3-1077826916
HeoGtan
2004-02-26 23:21
2004.03.28
Как узнать текущее имя поля и его номер




   Наверх