Récupérer le type d'un champs dans un ActiveX d'une DTS

Le
Gafish
Bonjour tous,

Je suis en train d'crire un ActiveX Vb dans une DTS SQL
Server, et j'aimerai rcuprer le type d'un champs.
Quelle est la syntaxe ?

Merci beaucoup d'avance !

Arnaud
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
AXL
Le #11720891
Essaye ca
DECLARE @table_name nvarchar(200)
set @table_name='Ma_table'

SELECT
COLUMN_NAME = convert(sysname,c.name),
convert (sysname,case
when t.xusertype > 255 then t.name
else d.TYPE_NAME collate database_default
end) TYPE_NAME,
convert(int,case
when d.DATA_TYPE in (6,7) then d.data_precision
else OdbcPrec(c.xtype,c.length,c.xprec)
end) "PRECISION",
convert(int,case
when type_name(d.ss_dtype) IN ('numeric','decimal') then
OdbcPrec(c.xtype,c.length,c.xprec)+2
else
isnull(d.length, c.length)
end) LENGTH,
NULLABLE = convert(smallint, ColumnProperty (c.id, c.name, 'AllowsNull'))

FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name

AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null)
AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type in ('TF', 'IF') and
c.number = 0))
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty (c.id, c.name,
'IsIdentity'),0)
AND c.xusertype = t.xusertype

order by c.colorder

C'est la plus simple que j'ai trouvé !!!! lol
Si tu as plus simple merci de la communiquer

"Gafish" news:19b501c426dc$2ee00370$
Bonjour à tous,

Je suis en train d'écrire un ActiveX Vb dans une DTS SQL
Server, et j'aimerai récupérer le type d'un champs.
Quelle est la syntaxe ?

Merci beaucoup d'avance !

Arnaud
Gafish
Le #11720771
Bonjour AXL !
Merci beaucoup pour cette longue réponse.
En revanche si je ne m'abuse, ca ressemble à une procédure
stockée non ? Est-ce que je peux en ce cas récupérer le
resultat d'une procédure stockée dans mon code VB à
l'interieur de mon ActiveX ?
Merci encore !

Arnaud

-----Message d'origine-----
Essaye ca
DECLARE @table_name nvarchar(200)
set @table_name='Ma_table'

SELECT
COLUMN_NAME = convert(sysname,c.name),
convert (sysname,case
when t.xusertype > 255 then t.name
else d.TYPE_NAME collate database_default
end) TYPE_NAME,
convert(int,case
when d.DATA_TYPE in (6,7) then d.data_precision
else OdbcPrec(c.xtype,c.length,c.xprec)
end) "PRECISION",
convert(int,case
when type_name(d.ss_dtype) IN ('numeric','decimal')


then
OdbcPrec(c.xtype,c.length,c.xprec)+2
else
isnull(d.length, c.length)
end) LENGTH,
NULLABLE = convert(smallint, ColumnProperty (c.id,


c.name, 'AllowsNull'))

FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name

AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null)
AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type


in ('TF', 'IF') and
c.number = 0))
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty


(c.id, c.name,
'IsIdentity'),0)
AND c.xusertype = t.xusertype

order by c.colorder

C'est la plus simple que j'ai trouvé !!!! lol
Si tu as plus simple merci de la communiquer

"Gafish"

dans le message de
news:19b501c426dc$2ee00370$
Bonjour à tous,

Je suis en train d'écrire un ActiveX Vb dans une DTS SQL
Server, et j'aimerai récupérer le type d'un champs.
Quelle est la syntaxe ?

Merci beaucoup d'avance !

Arnaud


.



AXL
Le #11720101
Oui tu peux le faire !!!

"Gafish" news:214d01c4277c$f947d980$
Bonjour AXL !
Merci beaucoup pour cette longue réponse.
En revanche si je ne m'abuse, ca ressemble à une procédure
stockée non ? Est-ce que je peux en ce cas récupérer le
resultat d'une procédure stockée dans mon code VB à
l'interieur de mon ActiveX ?
Merci encore !

Arnaud

-----Message d'origine-----
Essaye ca
DECLARE @table_name nvarchar(200)
set @table_name='Ma_table'

SELECT
COLUMN_NAME = convert(sysname,c.name),
convert (sysname,case
when t.xusertype > 255 then t.name
else d.TYPE_NAME collate database_default
end) TYPE_NAME,
convert(int,case
when d.DATA_TYPE in (6,7) then d.data_precision
else OdbcPrec(c.xtype,c.length,c.xprec)
end) "PRECISION",
convert(int,case
when type_name(d.ss_dtype) IN ('numeric','decimal')


then
OdbcPrec(c.xtype,c.length,c.xprec)+2
else
isnull(d.length, c.length)
end) LENGTH,
NULLABLE = convert(smallint, ColumnProperty (c.id,


c.name, 'AllowsNull'))

FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name

AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null)
AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type


in ('TF', 'IF') and
c.number = 0))
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty


(c.id, c.name,
'IsIdentity'),0)
AND c.xusertype = t.xusertype

order by c.colorder

C'est la plus simple que j'ai trouvé !!!! lol
Si tu as plus simple merci de la communiquer

"Gafish"

dans le message de
news:19b501c426dc$2ee00370$
Bonjour à tous,

Je suis en train d'écrire un ActiveX Vb dans une DTS SQL
Server, et j'aimerai récupérer le type d'un champs.
Quelle est la syntaxe ?

Merci beaucoup d'avance !

Arnaud


.



AXL
Le #11720091
En fait c'est une procedure stocké system que j'ai adapté a mes besoins

"Gafish" news:214d01c4277c$f947d980$
Bonjour AXL !
Merci beaucoup pour cette longue réponse.
En revanche si je ne m'abuse, ca ressemble à une procédure
stockée non ? Est-ce que je peux en ce cas récupérer le
resultat d'une procédure stockée dans mon code VB à
l'interieur de mon ActiveX ?
Merci encore !

Arnaud

-----Message d'origine-----
Essaye ca
DECLARE @table_name nvarchar(200)
set @table_name='Ma_table'

SELECT
COLUMN_NAME = convert(sysname,c.name),
convert (sysname,case
when t.xusertype > 255 then t.name
else d.TYPE_NAME collate database_default
end) TYPE_NAME,
convert(int,case
when d.DATA_TYPE in (6,7) then d.data_precision
else OdbcPrec(c.xtype,c.length,c.xprec)
end) "PRECISION",
convert(int,case
when type_name(d.ss_dtype) IN ('numeric','decimal')


then
OdbcPrec(c.xtype,c.length,c.xprec)+2
else
isnull(d.length, c.length)
end) LENGTH,
NULLABLE = convert(smallint, ColumnProperty (c.id,


c.name, 'AllowsNull'))

FROM
sysobjects o,
master.dbo.spt_datatype_info d,
systypes t,
syscolumns c
LEFT OUTER JOIN syscomments m on c.cdefault = m.id
AND m.colid = 1
WHERE
o.name like @table_name

AND o.id = c.id
AND t.xtype = d.ss_dtype
AND c.length = isnull(d.fixlen, c.length)
AND (d.ODBCVer is null)
AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type


in ('TF', 'IF') and
c.number = 0))
AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty


(c.id, c.name,
'IsIdentity'),0)
AND c.xusertype = t.xusertype

order by c.colorder

C'est la plus simple que j'ai trouvé !!!! lol
Si tu as plus simple merci de la communiquer

"Gafish"

dans le message de
news:19b501c426dc$2ee00370$
Bonjour à tous,

Je suis en train d'écrire un ActiveX Vb dans une DTS SQL
Server, et j'aimerai récupérer le type d'un champs.
Quelle est la syntaxe ?

Merci beaucoup d'avance !

Arnaud


.



Gafish
Le #11720081
Ok, je vais regarder la syntaxe à utiliser.
Merci encore

Arnaud

"AXL" news:
Oui tu peux le faire !!!

"Gafish" news:214d01c4277c$f947d980$
Bonjour AXL !
Merci beaucoup pour cette longue réponse.
En revanche si je ne m'abuse, ca ressemble à une procédure
stockée non ? Est-ce que je peux en ce cas récupérer le
resultat d'une procédure stockée dans mon code VB à
l'interieur de mon ActiveX ?
Merci encore !

Arnaud

>-----Message d'origine-----
>Essaye ca
>DECLARE @table_name nvarchar(200)
>set @table_name='Ma_table'
>
>SELECT
> COLUMN_NAME = convert(sysname,c.name),
> convert (sysname,case
> when t.xusertype > 255 then t.name
> else d.TYPE_NAME collate database_default
> end) TYPE_NAME,
> convert(int,case
> when d.DATA_TYPE in (6,7) then d.data_precision
> else OdbcPrec(c.xtype,c.length,c.xprec)
> end) "PRECISION",
> convert(int,case
> when type_name(d.ss_dtype) IN ('numeric','decimal')
then
> OdbcPrec(c.xtype,c.length,c.xprec)+2
> else
> isnull(d.length, c.length)
> end) LENGTH,
> NULLABLE = convert(smallint, ColumnProperty (c.id,
c.name, 'AllowsNull'))
>
> FROM
> sysobjects o,
> master.dbo.spt_datatype_info d,
> systypes t,
> syscolumns c
> LEFT OUTER JOIN syscomments m on c.cdefault = m.id
> AND m.colid = 1
> WHERE
> o.name like @table_name
>
> AND o.id = c.id
> AND t.xtype = d.ss_dtype
> AND c.length = isnull(d.fixlen, c.length)
> AND (d.ODBCVer is null)
> AND (o.type not in ('P', 'FN', 'TF', 'IF') OR (o.type
in ('TF', 'IF') and
>c.number = 0))
> AND isnull(d.AUTO_INCREMENT,0) = isnull(ColumnProperty
(c.id, c.name,
>'IsIdentity'),0)
> AND c.xusertype = t.xusertype
>
> order by c.colorder
>
>C'est la plus simple que j'ai trouvé !!!! lol
>Si tu as plus simple merci de la communiquer
>
>"Gafish" dans le message de
>news:19b501c426dc$2ee00370$
>Bonjour à tous,
>
>Je suis en train d'écrire un ActiveX Vb dans une DTS SQL
>Server, et j'aimerai récupérer le type d'un champs.
>Quelle est la syntaxe ?
>
>Merci beaucoup d'avance !
>
>Arnaud
>
>
>.
>




Publicité
Poster une réponse
Anonyme