Главная страница
    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.47 MB
Время: 0.045 c
15-1156072441
BOA_KAA
2006-08-20 15:14
2006.09.10
Интересный конкурс


2-1156135589
IgorMish
2006-08-21 08:46
2006.09.10
Как округлить число


15-1155632295
vajo
2006-08-15 12:58
2006.09.10
где находится адресная Outlook Express?


15-1155800592
Ketmar
2006-08-17 11:43
2006.09.10
господа, проверьте на работоспособность, плиз...


2-1156248430
J Cara
2006-08-22 16:07
2006.09.10
Что делать? rtl70.bpl.





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский