pirmdiena, 2010. gada 6. septembris

Kolonnu saraksta un atbilstošo datu tipu iegūšana


Veidojot aprakstus datu bāzei, kau apskatītu kādi lauki ir tabulā, skatā, funkcijā (kas atgriež tabulu), lai iegūtu kolonnu sarakstu, var veidot diagrammas, otrs variants ir izmantot sp_help procedūru. šādi:

sp_help 'objektaNosaukums'

vai arī- datu bāzes objektu sarakstu iegūst:

select * from sys.all_objects
select * from sys.all_columns

Pēc tam abus var savā starpā sasiet ar object_id palīdzību un izveidot visu ko nu nepieciešams.
Tas gan nestrādā uz vaicājumiem (gribējās dabūt veidu, kā iegūt šādu sarakstu uz jebkuru vaicājumu).

Piezīmes:
Vispār raksta doma bij pilnīgi savādāka nekā beigās sanāca. Sākotnējā doma bija- jebkuram vaicājumam iegūt kolonu sarakstu ar datu tipiem. Bet nekādā elegantā veidā to neizdevās izdarīt. Ja kāds pateiks kā to var izdarīt būšu priecīgs.

Doma kurā virzijos- kad .Net izveido datu adapteri, var nolasīt shēmu no datu bāzes (reāli nenolasot datus). Tas izskatās apmēram tā (dt- jauna datu tabula bez kolonām, sql- vaicājums):

SqlDataAdapter da = new SqlDataAdapter(sql, this.sqlConnection1);
da.FillSchema(dt, SchemaType.Source);

Paskatoties ar profiler tiek izpildīta sekojoša komandu virkne:

SET FMTONLY OFF; SET NO_BROWSETABLE ON; SET FMTONLY ON;
select * from tabula
SET FMTONLY OFF; SET NO_BROWSETABLE OFF;

Atslēga tajā visā ir „SET FMTONLY ON”- ja šis parametrs ir „ON”, tad vaicājums neatgriež datus, bet tikai shēmu.
Respektīvi- paliku pie secinājuma, ka pa tiešo nav ērta veida, kā iegūt visus rezultātus, bet ar .net programmas palīdzību to tā kā varētu sataisīt..

Nav komentāru:

Ierakstīt komentāru