LabWindows/CVI

cancel
Showing results for 
Search instead for 
Did you mean: 

DBCreateTableFromMap

Hola Buen dia!

 

Alguien podria ayudarme?

yo utilizo ResCode = DBImmediateSQL(hdbc,bufer2);

para crear tablas en mi base de datos (la utilizo practicamente para todo) mi pregunta es:

Utilizando DBCreateTableFromMap( );

como puedo poner el tipo de dato de cada columna (Fecha, currency o algun otro por ejemplo) al momento de crear la tabla,

utilizando el ejemplo de la ayuda de labwindows:

 

hmap = DBBeginMap (hdbc);

resCode = DBMapColumnToChar (hstmt, "SER_NUM", 11, serialNum,

&sNumStatus, "");

resCode = DBMapColumnToDouble (hmap, "MEAS1", &measurement,

&measStatus);

...

resCode = DBCreateTableFromMap (hmap, "TESTLOG");

 

No se donde decirle a la base de datos que tipo de dato va a ser la columna a crear suponiendo que deseo crear una columna para fecha(DB_DATE) o cualquier otro tipo de dato.

 

resCode = DBMapColumnToDouble (hmap, "Fecha", &fechavar,&fechaStatus);

 

alguien sabe como puedo configurarla?

 

 

0 Kudos
Message 1 of 3
(4,337 Views)

Hola PGaRcia,

 

Te comparto el siguiente documento, en el cual se especifican todas las instrucciones y procedimientos que se utilizan en el toolkit de CVI de LABWindows.

ftp://ftp.ni.com/support/manuals/320960a.pdf

 

En este documento encontrarás el siguiente ejemplo, en el cual puedes crear la tabla en el argumento de la función DBImmediateSQL con el comando CREATE TABLE, en el cual le especificaras tanto el nombre como el tipo de dato de cada columna.

 

Te dejo el siguiente ejemplo de cómo utilizar el comando CREATE TABLE:

 

resCode = DBImmediateSQL (hdbc,"CREATE TABLE TESTRES (UUT_NUM CHAR (10), MEAS1 NUMERIC (10,2), MEAS2 NUMERIC(10,2))"); if (resCode != DB_SUCCESS) goto Error;

 

Además, en el pdf que te compartí podrás encontrar en la página 72 la descripción de este y otros comandos utilizados en la programación de SQL desde LabWindows.

 

Saludos y espero te sea de utilidad esta información.

Message 2 of 3
(4,044 Views)

Gracias por la respuesta el problema que tengo es que usando es;

estoy usando (ejemplo).

 

DBImmediateSQL(hdbc,"CREATE TABLE Tabla1 (ID INTEGER, NOMBRE CHAR(30), CADENA_LARGA LONGWVARCHAR(500))");

 

y me devuelve error -10

entonces "aislando" los campos (prueba y error) y usando la funcion DBColumnType();

 

INTEGER es correcto y devuelve 3 (DB_INTEGER)

CHAR    no me causa error pero me devuelve 130 (DB_WCHAR) y yo esperaba 129 (DB_CHAR)

LONGVARCHAR es el causante del error.

 

mi problema es entonces que algunos tipos de datos me generan error y me gustaria saber cual es la sintaxis para que no me generen problemas y el dato sea el correcto, he buscado informacion en la web acerca de la sintaxis (Del lenguaje SQL) para "CREATE TABLE..." y al parecer todo esta bien, por lo tanto no se que es lo que estoy haciendo mal, si pudieran ayudarme ó darme algun link acerca de la sintaxis de los tipos de datos  tDBDataType (En el manual no hallé para los tipos que me dan error).

 

Gracias por la atencion, trate de dar a entender mi problema de la manera mas simple que pudé para no extenderme mas (aun asi creo que es demasiado). 

 

0 Kudos
Message 3 of 3
(3,730 Views)