Вниз
Скачать: 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.021 c
14-1078175489
Игорь Шевченко
2004-03-02 00:11
2004.03.28
Катя, с днем рождения!


1-1079069069
Layner
2004-03-12 08:24
2004.03.28
Мастера, подскажите, как повесить "горячую клавишу" на процедуру.


1-1078829595
Rauf
2004-03-09 13:53
2004.03.28
Wide аналог StrPos???


14-1078028474
SergP
2004-02-29 07:21
2004.03.28
MySQL. Нужно восстановить данные из дампа на лок. машине


3-1076403255
SM
2004-02-10 11:54
2004.03.28
Как узнать значение автоинкрементарного поля после SQL




   Наверх