Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   SQL (https://www.clubdelphi.com/foros/forumdisplay.php?f=6)
-   -   2da consulta contra RecordSet (https://www.clubdelphi.com/foros/showthread.php?t=81020)

sidneyb 03-10-2012 00:39:21

2da consulta contra RecordSet
 
buenas tardes amigos...

tengo un inconveniente, tengo una conexion a un archivo .DBF, que me trae una informacion para ser importada al sistema,
y la base de datos del sistema la tengo en SQLServer2012, necesito hacer una consulta, no es mas que un select en la BDSQL que contenga el campo "CodigoBarra", esto lo tengo dentro del RecordSet, ahora, como es un simple ejecutable, que ni tiene mas nada que un boton y guarda el resultado de la comparacion en un txt, como puedo hacer para saber cual de esos valores del RecordSet NO existe en mi DBF. es decir, como puedo hacer un select en mi BDSQL que me traiga todos los codigos de barra y me diga cuales del dbf no tengo en mi BDSQL (creo que enrrede un poco la cosa)

quisiera algo como esto "select * from 'Mi DBF' where CodigoBarra not exists ('Mi BDSQL.RecordSet')";

para consultar ambas tablas, uso componentes ADOQuery

si me pueden ayudar, se los agradeceria, muchas gracias por su atencion

Osorio 03-10-2012 18:27:47

Importar a una tabla temporal
 
Yo en tu lugar apostaría por el siguiente procedimiento:

1. Cargar toda la información del archivo .DBF en una tabla de SQLServer 2012 a través de la herramienta "Importar / Exportar datos" que trae el mismo SQLServer.
2. Hacer las consultas y/o actualizaciones que requieres.
3. Borrar la tabla que creaste en el paso 1.


Saludos,

sidneyb 03-10-2012 18:55:44

gracias osorio por tu atencion...

lo que me indicaste, no me sirve, por la simple razon de que no soy yo quien hace el procedimiento (perteneciente al departamento que tiene acceso a Sql Server), esto lo deberia hacer el departamento de compras, quienes se encargan de crear los articulos que aun no existen en el inventario, y es una labor ejecutada casi a diario, por eso necesito dejarselo en sus manos (un ejecutable) para que ellos sin tener acceso al sql management puedan tener esa informacion.

en la actualidad hago un procedimiento parecido al que señalas, pero estoy haciendolo yo, trabajo que no me corresponde

Osorio 03-10-2012 19:04:48

No la borres
 
Pues nada.

Carga el archivo .DBF y dejalo cargado en el SQLSERVER y los de compras que trabajen normal, solo que no leeran del archivo .DBF sino de la tabla que creaste en SQL.

sidneyb 03-10-2012 19:09:02

no, como te digo, el problema es que es un dbf distinto casi que a diario por que son diferentes facturas, con diferentes articulos, puede que se repitan o no entre una factura y otra, por eso no me sirve dejar cargado un solo dbf con la misma informacion siempre

Osorio 03-10-2012 19:11:29

Que lo cargue tu programa
 
Ya que tienes acceso al .DBF y al SQL server. Que tu programa haga lo que hace el IMPORTAR DATOS.

Toma el .DBF (siempre tienen la misma estructura?) y se encargue de crear la tabla en SQLSERVER. asi los de compras solo le indican a tu programa cual es el .DBF a procesar.


La franja horaria es GMT +2. Ahora son las 10:20:02.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi