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

Вниз

Информация о таблице с помощью sp_help   Найти похожие ветки 

 
MsGuns ©   (2006-06-30 14:06) [0]

Данные об указанной таблице возвращаются блоками: строка о самой таблице, НД о колонках и т.д., что хорошо видно в QA

В Дельфи пытаюсь "достучаться" до полей, ограничений и т.д. :

ADODataSet.RecordSet := ADOCommand.Execute

но получаю только строку о таблице.

Как быть с "остальными" рекодсетами ?

Спасибо


 
Fay ©   (2006-06-30 14:26) [1]

NextRecordset ?


 
MsGuns ©   (2006-06-30 15:21) [2]

>Fay ©   (30.06.06 14:26) [1]
>NextRecordset ?

 Спасибо огромное !
 Зациклился на то, что "exec sp_help Table" можно указывать только в TADOCommand ;((

Код

var rc: integer;
...
with ADODataSet do
  begin
   CommandText := "exec sp_help Table";
   Open;
   RecordSet := NextRecordSet(1);
   ...
  end;

прекрасно отработал

Федя, ты -монстер  ;))


 
Ega23 ©   (2006-06-30 15:37) [3]


>  Зациклился на то, что "exec sp_help Table" можно указывать
> только в TADOCommand ;((


Не понял. А ты что, всегда запросы на возвращение НД через ADOCommand делаешь?


 
MsGuns ©   (2006-06-30 15:55) [4]

>Ega23 ©   (30.06.06 15:37) [3]
>Не понял. А ты что, всегда запросы на возвращение НД через ADOCommand делаешь?

Да нет, просто после интербэйза, бде и акцеса привык в TXXDataSet/TXXQuery писать SELECT, а вот всякие апдейты-инсерты-делеты - в TADOCommand (ADO)

;)


 
Ega23 ©   (2006-06-30 16:00) [5]


> Да нет, просто после интербэйза, бде и акцеса привык в TXXDataSet/TXXQuery
> писать SELECT, а вот всякие апдейты-инсерты-делеты - в TADOCommand
> (ADO)


Ну да, правильно. А тогда нафига ADODataSet.RecordSet := ADOCommand.Execute?


 
MsGuns ©   (2006-06-30 16:11) [6]

>Ega23 ©   (30.06.06 16:00) [5]
>Ну да, правильно. А тогда нафига ADODataSet.RecordSet := ADOCommand.Execute?

Ну потому что нельзя же вот так сразу, палкой по банановому дереву. Сначала надо попытаться с ее помощью повыше подпрыгнуть ;))

Переделал на

 with TADODataSet.Create(nil) do
   begin
    Connection := TADOConnection;
    CommandText := "exec sp_help "+TableName;
    Open;
    RecordSet := NextRecordSet();
    <Закачка в TList данных  о полях таблицы>
    Close;
    Free;
   end;


 
stone ©   (2006-06-30 16:15) [7]

а сразу sp_columns использовать не проще?


 
Ega23 ©   (2006-06-30 16:17) [8]


> Переделал на
>
>  with TADODataSet.Create(nil) do
>    begin
>     Connection := TADOConnection;
>     CommandText := "exec sp_help "+TableName;
>     Open;
>     RecordSet := NextRecordSet();
>     <Закачка в TList данных  о полях таблицы>
>     Close;
>     Free;
>    end;


Я бы на твоём месте не пренебрегал try-finally try-except:
with TADODataSet.Create(nil) do
  begin
   try
    Connection := TADOConnection;
    CommandText := "exec sp_help "+TableName;
    try
     Open;
     RecordSet := NextRecordSet();
     <Закачка в TList данных  о полях таблицы>
    except
         ......
    end;
   finally
     Close;
     Free;
   end;
  end;


 
MsGuns ©   (2006-06-30 16:56) [9]

>stone ©   (30.06.06 16:15) [7]
>а сразу sp_columns использовать не проще?

Спасибо. Приму к сведению. Правда, там нет информации о ключах и индексах..

>Ega23 ©   (30.06.06 16:17) [8]
>Я бы на твоём месте не пренебрегал try-finally try-except:

Ежа, я и не пренебрегаю. Только вот лень было набирать тут ;)
В проекте (к сожалению на другой тачке и в другой сетке), конечно, все "научно". Да и объекты я называю, естественно, не Edit17, ADOConnection1 и т.д.

 Спасибо еще раз всем. Разобрался ;)))


 
Fay ©   (2006-06-30 17:13) [10]

2 MsGuns ©   (30.06.06 15:21) [2]
var
 r : _Recordset;
begin
...
 r := ADOConnection.Execute("exec sp_help Table");
...
end;


Не пробовал ?



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

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

Наверх




Память: 0.49 MB
Время: 0.035 c
15-1155885736
DVM
2006-08-18 11:22
2006.09.10
Возможные глюки при 100% загрузке процессора


2-1155812347
ArtemESC
2006-08-17 14:59
2006.09.10
Обязателен ли SysUtils в


15-1155794431
Alx_
2006-08-17 10:00
2006.09.10
Genuine Advantage Notifications


15-1156085949
vajo
2006-08-20 18:59
2006.09.10
Автовключение компьютера.


15-1155609732
boalse
2006-08-15 06:42
2006.09.10
Unsafe code, как с этим бороться?