1. Crea una tabla temporal
La entrada de datos es un enlace inevitable en el desarrollo de programas de bases de datos. En la estructura del cliente/servidor, el cliente puede tener que ingresar un lote de datos antes de enviarlo a la base de datos de back -end del servidor, esto requiere una tabla de datos temporal para establecer localmente (cliente) para almacenar los datos ingresados por el usuario. , Borre los datos después de ser enviados. Los beneficios de este método son: mejorar la eficiencia de entrada y reducir la carga de la red.
Dado que la cantidad de datos ingresados por un usuario a la vez es generalmente pequeña (no más de unos pocos cientos de registros), se pueden construir tablas temporales en la memoria, lo que hace que el procesamiento sea más rápido.
Método 1: Use el control de consulta (TQuery)
Paso 1: Coloque el control de consulta (TQuery) en el formulario y establezca la tabla de datos conectados.
Paso 2: Haz TQuery.
TQuery.
Paso 3: Agregue un sustensivo donde se sustituya después de la instrucción SQL original y solicite que el resultado de la consulta SQL esté vacío después de agregar esto donde Subestación.
Por ejemplo:
Seleccione Biolife. ″ Especies No ″, categoría, Common_Name, Biolife. ″ Nombre de especie ″, biolife. ″ De longitud (cm) ″, longitud_in, notas, gráfico
De ″ biolife.db ″ biolife
donde biolife.Category = ′ A 'y Biolife.Category = ′ B ′
De esta manera, se establece la tabla temporal.
Método 2: Crear tablas temporales usando el código
El código es el siguiente:
function createTableInMemory (const afielddefs: tfielddefs): tdataset;
varilla
Temprable: tclientdataset;
Comenzar
Tempable: = nil;
Resultado: = nil;
Si afielddefs $#@60; $#@62; nil entonces entonces
Comenzar
intentar
Tempable: = tclientDataSet.create (aplicación);
Temptable.fielddefsign (afielddefs);
Tentable.createdataSet;
Resultado: = (tentable como tdataset);
Excepto
Si Temply $##@60; $#@62; nil entonces
Tempable.free;
Resultado: = nil;
aumentar;
fin
fin
fin;
En el programa, úsalo de la siguiente manera:
Procedimiento tForm1.Button1Click (remitente: tobject);
varilla
Adataset: Tdataset;
Comenzar
Adataset: = tdataset.create (self);
con adataset.fielddefs do
Comenzar
Agregar ('nombre', ftString, 30, falso);
Agregar (′ UE ′, ftinteger, 0, falso);
fin;
con DataSource1 do
Comenzar
DataSet: = CreateTableInMemory (adataset.fielddefs);
DataSet.open;
fin;
Adataset.free;
fin;
La creación temporal de la tabla está completa.
El método 1 es fácil de usar, pero debido a que el control de consulta se utiliza para consultar la base de datos de back -end del servidor al borrar los datos, la velocidad es ligeramente más lenta y no es adecuada para situaciones en las que cada campo en una tabla temporal está unido por varios datos Campos de mesa. El método 2 tiene una amplia gama de aplicaciones y velocidad rápida, pero requiere un código de escritura. (El método de uso de tfielddefs en el código es muy simple, consulte la ayuda en línea de Delphi).
2. Configure el motor de datos (BDE, enlace SQL)
Al distribuir programas de bases de datos, debe llevar un motor de datos (BDE, enlace SQL), y después de que el cliente instale el programa, también debe configurar un motor de datos, como nombre de usuario, contraseña (contraseña), etc. Si se configura manualmente, la carga de trabajo es relativamente grande (dependiendo del número de clientes).
[Alias Idapi]
usaName = sysdba
contraseña = masterkey
Después de instalar el programa, el motor de datos se configura automáticamente.
3. Use funciones en la base de datos InterBase
Los programadores pueden sentirse inconvenientes (solo cuatro) cuando usan Interbase como una base de datos de fondo cuando proporcionan muy pocas funciones (solo cuatro) y no pueden escribir fácilmente procedimientos almacenados complejos. Interbase en sí no puede escribir funciones, pero puede usar funciones externas (llamadas funciones en dll). El siguiente ejemplo muestra cómo declarar la función subStr en Interbase.
Declarar la función externa substr
CString (80), Smallint, Smallint
Devuelve CString (80)
Entry_Point ″ IB_UDF_SUBSTR ″ MODULE_NAME ″ IB_UDF ″
Dónde: MODULE_NAME es el nombre de DLL y Entry_Point es el nombre de la función.
Se puede usar después de la declaración, por ejemplo:
Seleccione substr (país)
del país
Este ejemplo utiliza la base de datos IBLocal que viene con la instalación de Delphi. Los usuarios también pueden escribir funciones para expandir la base. Para obtener más contenido, consulte los temas de artículo relacionados con la base de datos, o