Difference between revisions of "Database field type/es"

From Lazarus wiki
Jump to navigationJump to search
Line 3: Line 3:
  
  
== Types ==
+
== Tipos ==
Currently, the following field types are defined:
+
 
See [http://lazarus-ccr.sourceforge.net/docs/fcl/db/tfieldtype.html FCL field type documentation]
+
Actualment están definidos los siguientes tipos para campos:
To do: add assignment information (e.g. can you use .AsString) and additional information below.  
+
 
 +
Ver [http://lazarus-ccr.sourceforge.net/docs/fcl/db/tfieldtype.html Documentación de tipos de campos en FCL]
 +
Por hacer: añadir información de asignación (e.g. puedes usar .AsString) e información adicional más abajo por completar.  
 +
 
 +
(ft = field Type = tipo de campo)
  
 
ftADT:
 
ftADT:
Line 12: Line 16:
 
ftArray:
 
ftArray:
  
ftAutoInc: an autoincrementing integer field.
+
ftAutoInc: un campo entero con autoincremento.
  
ftBCD: a binary coded decimal floating point value
+
ftBCD: un valor decimal codificado en binario de punto flotante.
  
ftBlob: a binary large object (BLOB), meant to store arbitrary binary data.
+
ftBlob: un objeto binario largo (BLOB: Bynary Large OBject), destinado principalmente para almacenar datos binarios arbitrarios.
  
ftBoolean: a boolean value (yes/no).
+
ftBoolean: un valor booleano (yes/no).
  
ftBytes: presumably a number of bytes stored as-is. Needs to have its Size property set to work.
+
ftBytes: Por lo visto un número de bytes almacenados tal cual. Precisa tener la propiedad de tamaño definida para que funcione.
  
 
ftCurrency: a format to precisely store currency values.
 
ftCurrency: a format to precisely store currency values.
Line 26: Line 30:
 
ftCursor:
 
ftCursor:
  
ftDBaseOle: presumably meant to store OLE objects in a DBase database. Needs to have its Size property set to work.
+
ftDBaseOle: Por lo visto parece almacenar objetos OLE en una base de datos DBasee. Precisa tener la propiedad de tamaño definida para que funcione.
  
ftDataSet: presumably meant to store an entire dataset (possibly to implement master/detail table).
+
ftDataSet: Por lo visto parece almacenar un dataset completo (posiblemente para implementar la tabla master/detail)).
  
ftDate: a date without time information.
+
ftDate: una fecha (date) sin información de tiempo (time).
  
ftDateTime: date and time information.
+
ftDateTime: información de fecha (date) y hora (time).
  
ftFMTBcd: Needs to have its Size property set to work.
+
ftFMTBcd: Necesita tener el tamaño definido para funcionar..
  
ftFixedChar: a fixed width character field, similar to a Pascal shortstring. Needs to have its Size property set to work.
+
ftFixedChar: un campo tipo caracter de ancho fijo, similar al tipo ShortString de Pascal. Precisa tener la propiedad de tamaño definida para que funcione.
  
ftFixedWideChar: a fixed width multibyte character field. Needs to have its Size property set to work.
+
ftFixedWideChar: un campo de tipo multi carácter de tamaño fijo. Precisa tener la propiedad de tamaño definida para que funcione.
  
ftFloat: a floating point numeric type.
+
ftFloat: un tipo numérico de punto flotante.
  
ftFmtMemo: Needs to have its Size property set to work.
+
ftFmtMemo: Precisa tener la propiedad de tamaño definida para que funcione.
  
ftGraphic: Needs to have its Size property set to work.
+
ftGraphic: Precisa tener la propiedad de tamaño definida para que funcione.
  
ftGuid: a field used to store a GUID (Globally Unique Identifier). With the current code, this field needs to have its Size property set to 38.
+
ftGuid: este tipo de campo se utiliza para almacenar un  GUID (Globally Unique Identifier). Con el código actual este campo tiene establecido un tamaño de 38.
  
 
ftIDispatch:
 
ftIDispatch:
  
ftInteger: an integer field
+
ftInteger: un campo tipo entero (integer).
  
 
ftInterface:
 
ftInterface:
  
ftLargeint: a field that contains an integer, stores more bytes than an integer and therefore has a larger range.
+
ftLargeint: tipo de campo que contiene un entero largo, permitiendo almacenar más bytes que el integer y por tanto tiene un rango numérico mayor.
  
ftMemo: stores a variable amount of string/text data; needs no size set.
+
ftMemo: es un tipo de campo que almacena una cantidad variable de datos de tipo cadenas (string) / texto.
  
ftOraBlob: presumably stores Oracle BLOB.
+
ftOraBlob: presumiblemente para almacenar un Oracle BLOB.
  
ftOraClob: presumably stores Oracle CLOB: an Oracle data type that can hold up to 4 GB of data [http://www.orafaq.com/wiki/CLOB]
+
ftOraClob: presumiblemente para almacenar Oracle CLOB: un tipo de datos Oracle que puede albergar hasta  4 GB de datos. [http://www.orafaq.com/wiki/CLOB]
  
ftParadoxOle: presumably meant to store OLE objects in a Paradox database.
+
ftParadoxOle: presumiblemente para almacenar objetos OLE en bases de datos Paradox.
  
 
ftReference:
 
ftReference:
  
ftSmallint: an integer type field with less bytes than ftInteger.
+
ftSmallint: un campo de tipo más pequeño que integer conteniendo menos byte que ftInteger.
  
ftString: stores string data; needs to have its Size property set to the maximum number of characters possible in that field.
+
ftString: un campo que almacena datos tipo string (cadena). Necesita tener definida su propiedad de tamaño definida con el número máximo de caracteres a contner.
  
ftTime: stores time-only data.
+
ftTime: este campo almacena únicamente datos de tipo horario (time).
  
ftTimeStamp: stores date/time data. Probably equivalent to ftDateTime
+
ftTimeStamp: campo que almacena datos tipo fecha (date) / hora (time). Probablemente equivalente a ftDateTime
  
ftTypedBinary: some kind of blob-like field?
+
ftTypedBinary: ¿Campo que almacena algo parecido al de BLOB?
  
 
ftUnknown:
 
ftUnknown:
  
ftVarBytes: presumably a variant with byte/binary data?
+
ftVarBytes: presumiblemente una variante de campo para almacenar datos binarios con X bytes.
  
ftVariant: presumably meant to store variant data.
+
ftVariant: presumiblemente para almacenar datos Variant.
  
ftWideMemo: presumably an ftMemo with multibyte characters.
+
ftWideMemo: presumiblemente un ftMemo con caracteres multibyte.
  
ftWideString: presumably an ftString with multibyte characters.
+
ftWideString: presumiblemente un ftString con caracteres multibyte.
  
 
ftWord: presumably stores an integer value
 
ftWord: presumably stores an integer value

Revision as of 11:50, 25 January 2013

Overview

FCL-DB database fields can have different data types. In datasets, a subset of these types is available. What types are supported differ per dataset type.


Tipos

Actualment están definidos los siguientes tipos para campos:

Ver Documentación de tipos de campos en FCL Por hacer: añadir información de asignación (e.g. puedes usar .AsString) e información adicional más abajo por completar.

(ft = field Type = tipo de campo)

ftADT:

ftArray:

ftAutoInc: un campo entero con autoincremento.

ftBCD: un valor decimal codificado en binario de punto flotante.

ftBlob: un objeto binario largo (BLOB: Bynary Large OBject), destinado principalmente para almacenar datos binarios arbitrarios.

ftBoolean: un valor booleano (yes/no).

ftBytes: Por lo visto un número de bytes almacenados tal cual. Precisa tener la propiedad de tamaño definida para que funcione.

ftCurrency: a format to precisely store currency values.

ftCursor:

ftDBaseOle: Por lo visto parece almacenar objetos OLE en una base de datos DBasee. Precisa tener la propiedad de tamaño definida para que funcione.

ftDataSet: Por lo visto parece almacenar un dataset completo (posiblemente para implementar la tabla master/detail)).

ftDate: una fecha (date) sin información de tiempo (time).

ftDateTime: información de fecha (date) y hora (time).

ftFMTBcd: Necesita tener el tamaño definido para funcionar..

ftFixedChar: un campo tipo caracter de ancho fijo, similar al tipo ShortString de Pascal. Precisa tener la propiedad de tamaño definida para que funcione.

ftFixedWideChar: un campo de tipo multi carácter de tamaño fijo. Precisa tener la propiedad de tamaño definida para que funcione.

ftFloat: un tipo numérico de punto flotante.

ftFmtMemo: Precisa tener la propiedad de tamaño definida para que funcione.

ftGraphic: Precisa tener la propiedad de tamaño definida para que funcione.

ftGuid: este tipo de campo se utiliza para almacenar un GUID (Globally Unique Identifier). Con el código actual este campo tiene establecido un tamaño de 38.

ftIDispatch:

ftInteger: un campo tipo entero (integer).

ftInterface:

ftLargeint: tipo de campo que contiene un entero largo, permitiendo almacenar más bytes que el integer y por tanto tiene un rango numérico mayor.

ftMemo: es un tipo de campo que almacena una cantidad variable de datos de tipo cadenas (string) / texto.

ftOraBlob: presumiblemente para almacenar un Oracle BLOB.

ftOraClob: presumiblemente para almacenar Oracle CLOB: un tipo de datos Oracle que puede albergar hasta 4 GB de datos. [1]

ftParadoxOle: presumiblemente para almacenar objetos OLE en bases de datos Paradox.

ftReference:

ftSmallint: un campo de tipo más pequeño que integer conteniendo menos byte que ftInteger.

ftString: un campo que almacena datos tipo string (cadena). Necesita tener definida su propiedad de tamaño definida con el número máximo de caracteres a contner.

ftTime: este campo almacena únicamente datos de tipo horario (time).

ftTimeStamp: campo que almacena datos tipo fecha (date) / hora (time). Probablemente equivalente a ftDateTime

ftTypedBinary: ¿Campo que almacena algo parecido al de BLOB?

ftUnknown:

ftVarBytes: presumiblemente una variante de campo para almacenar datos binarios con X bytes.

ftVariant: presumiblemente para almacenar datos Variant.

ftWideMemo: presumiblemente un ftMemo con caracteres multibyte.

ftWideString: presumiblemente un ftString con caracteres multibyte.

ftWord: presumably stores an integer value

Note that for string type fields, Size indicates the number of characters that can be stored. DataSize indicates the field size in bytes. If you use multibyte characters like UTF8 or UTF16 do, DataSize and Size do not mean the same thing. If you use only ANSI/ASCII characters, DataSize and Size are effectively the same thing.

Defining types in your dataset

Todo: write me. Explain various ways of doing things (TFieldDef, TFields) and which dataset supports which methods.

Asignando y retornando valores

Una vez que se tienen definidos los campos en el dataset, se puede asignar y retornar datos en la siguiente manera - aquí se supone que se tiene un dataset llamado FTestDataset:

  FTestDataset.Open; //Abre para visualización/edición/inserción
  FTestDataset.Append;
  FTestDataset.FieldByName('TuNombreDeCampo').Asstring := 'Este es mi campo de datos'; //Supongamos que tu nombre de campo es del tipo memo
  FTestDataset.Post; //"Commit (acometer)"/save (salvar) los cambios en el campo al dataset
  WriteLn('Tú nombre de campo es:' + FTestDataset.FieldByName('TuNombreDeCampo').AsString 
  { Retorna el valor del campo en el registro actual. Como no hemos movido el campo deberíamos obtener justamente lo que acabemos de entrar }

Para campos de tipo text/memo, utilizar el método AsString. Para campos binarios, se supone que puede utilizarse el método AsString - pero debe haber algún otro modo además

ver además