Pasar de una BD a otra

10/12/2004 - 17:45 por Rookie | Informe spam
Hola,... desarrolle una aplicacion para pedidos en linea (Access) necesito
que una vez se confirme el pedido, este sea copiado a una BD en FoxPro. Las
tablas tienen la misma estructura, como puedo lograr pasar los datos de la
tabla en access a los campos que tengan el mismo nombre en la tabla dentro de
la BD de FoxPro; una vez copiados, los datos deben borrarce de la tabla de
access (solo los de "este" pedido)

Me conecto a FoxPro por medio de DSN y a Access por medio de la ruta del
archivo .mdb

Preguntas similare

Leer las respuestas

#6 Rookie
11/12/2004 - 17:31 | Informe spam
Cierto, tenia las tablas como de solo lectura, pero... ahora me lanza este
mensaje:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Visual FoxPro Driver]Record validation rule is violated.

modifique el sqlfoxpro quitandole la comilla simple al v_factnum, pues este
es un campo numerico, hice un response.write y me imprime todos los campos
correctamente, incluso permiti NULL en todos los campos de la table en FoxPro.

en el support de microsoft solo veo esto
http://msdn.microsoft.com/library/d...rr1583.asp


The operation you have attempted is in violation of a record validation rule.

Fix the record values or revert the record.


estoy en un callejon sin salida...
Respuesta Responder a este mensaje
#7 Rookie
11/12/2004 - 18:05 | Informe spam
Como coloco los campos numerico y fecha en la instruccion insert?
Respuesta Responder a este mensaje
#8 Stressed Monkey
11/12/2004 - 22:50 | Informe spam
Encontrado con esa situacion yo haria lo siguente, crearia una pagina asp:

Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DSN=your_DSN","UID=username","Pwd=password;"

sqlfoxpro = "insert into Pedidos (fact_num) values ('el valor')"
conn.Execute sqlfoxpro

Y preuebaria con cado uno de los campos y valores para ver cual esta
fallando.


"Rookie" wrote in message
news:
Cierto, tenia las tablas como de solo lectura, pero... ahora me lanza este
mensaje:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Visual FoxPro Driver]Record validation rule is violated.

modifique el sqlfoxpro quitandole la comilla simple al v_factnum, pues


este
es un campo numerico, hice un response.write y me imprime todos los campos
correctamente, incluso permiti NULL en todos los campos de la table en


FoxPro.

en el support de microsoft solo veo esto:



http://msdn.microsoft.com/library/d...rr1583.asp


The operation you have attempted is in violation of a record validation


rule.

Fix the record values or revert the record.


estoy en un callejon sin salida...


Respuesta Responder a este mensaje
#9 Rookie
11/12/2004 - 23:59 | Informe spam
Gracias... ya no me envia errores,... pero(aun hay pero's)... solo me
inserta un registro, buscando en google encontre algo llamado "LOOP" pero no
se como implementarlo
Si no es abuso... me ayudas en esto ultimo

De antemano, Gracias

"Stressed Monkey" wrote:

Encontrado con esa situacion yo haria lo siguente, crearia una pagina asp:

Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DSN=your_DSN","UID=username","Pwd=password;"

sqlfoxpro = "insert into Pedidos (fact_num) values ('el valor')"
conn.Execute sqlfoxpro

Y preuebaria con cado uno de los campos y valores para ver cual esta
fallando.


"Rookie" wrote in message
news:
> Cierto, tenia las tablas como de solo lectura, pero... ahora me lanza este
> mensaje:
>
> Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> [Microsoft][ODBC Visual FoxPro Driver]Record validation rule is violated.
>
> modifique el sqlfoxpro quitandole la comilla simple al v_factnum, pues
este
> es un campo numerico, hice un response.write y me imprime todos los campos
> correctamente, incluso permiti NULL en todos los campos de la table en
FoxPro.
>
> en el support de microsoft solo veo esto:
>
http://msdn.microsoft.com/library/d...rr1583.asp
>
>
> The operation you have attempted is in violation of a record validation
rule.
>
> Fix the record values or revert the record.
>
>
> estoy en un callejon sin salida...
>
>



Respuesta Responder a este mensaje
#10 Stressed Monkey
12/12/2004 - 00:10 | Informe spam
Si vas a escojer mas de un record de la bd access, tienes que usar un loop
para ponerlos todos en la bd, cambiaria asi el code:

' -
Dim mdbconn
Dim rsaccess
Dim sqlaccess
Dim conn
Dim v_fact_num
Dim v_status
Dim v_co_cli
Dim v_co_tran
Dim v_forma_pag
Dim v_co_sucu
Dim sqlfoxpro
Set mdbconn = Server.CreateObject("ADODB.CONNECTION")
mdbconn.Open = "DRIVER={Microsoft Access Driver
(*.mdb)};DBQ=C:\Projects\Symbol\Base.mdb"
Set rsaccess = Server.CreateObject("ADODB.Recordset")
rsaccess.LockType = 3
sqlaccess = "select * from Pedidos where Fact_Num= " &
Request.QueryString("id_Pedido")
rsaccess.Open sqlaccess, mdbconn

'ahora eata abierta la coneccion a la access db y abres la coneccion a la
'foxpro

Set conn = Server.CreateObject("ADODB.Connection")
conn.open "DSN=DataProfit","UID=;","Pwd=;"

'comiezas un loop que se acaba cuando no hay mas records
Do while not rsaccess.eof

'pasas los valores de la access recordset a variables

v_fact_num= rsaccess.fields("fact_num")
v_status= rsaccess.fields("status")
v_co_cli= rsaccess.fields("co_cli")
v_co_tran= rsaccess.fields("co_tran")
v_forma_pag= rsaccess.fields("forma_pag")
v_co_sucu= rsaccess.fields("co_sucu")


'cuando tienes todos los valores que necesitas, usas un insert statement
'para meterlos a la foxpro

sqlfoxpro = "insert into Pedidos(fact_num, status, co_cli, co_tran,
forma_pag, co_sucu) values('"&v_fact_num&"', '"&v_status&"', '"&v_co_cli&"',
'"&v_co_tran&"', '"&v_forma_pag&"', '"&v_co_sucu&"')"
conn.Execute sqlfoxpro

'ahora borras el record de access

rsaccess.Delete

'ahora cambias al siguente record
rsaccess.MoveNext

'aqui se acaba el loop, o sea, la pagina vuelve a la linea Do while not
hasta que noy hay mas records y despues sigue a la proxima linea.
Loop

'cierrass las coneccionnes

rsaccess.Close
Set rsaccess = Nothing
mdbconn.Close
Set mdbconn = Nothing
conn.Close
Set conn = Nothing
' -

Cuentame si ahora finalmente te funciona!

Sergio.


"Rookie" wrote in message
news:
Gracias... ya no me envia errores,... pero(aun hay pero's)... solo me
inserta un registro, buscando en google encontre algo llamado "LOOP" pero


no
se como implementarlo
Si no es abuso... me ayudas en esto ultimo

De antemano, Gracias

"Stressed Monkey" wrote:

> Encontrado con esa situacion yo haria lo siguente, crearia una pagina


asp:
>
> Set conn = Server.CreateObject("ADODB.Connection")
> conn.open "DSN=your_DSN","UID=username","Pwd=password;"
>
> sqlfoxpro = "insert into Pedidos (fact_num) values ('el valor')"
> conn.Execute sqlfoxpro
>
> Y preuebaria con cado uno de los campos y valores para ver cual esta
> fallando.
>
>
> "Rookie" wrote in message
> news:
> > Cierto, tenia las tablas como de solo lectura, pero... ahora me lanza


este
> > mensaje:
> >
> > Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
> > [Microsoft][ODBC Visual FoxPro Driver]Record validation rule is


violated.
> >
> > modifique el sqlfoxpro quitandole la comilla simple al v_factnum, pues
> este
> > es un campo numerico, hice un response.write y me imprime todos los


campos
> > correctamente, incluso permiti NULL en todos los campos de la table en
> FoxPro.
> >
> > en el support de microsoft solo veo esto:
> >
>


http://msdn.microsoft.com/library/d...rr1583.asp
> >
> >
> > The operation you have attempted is in violation of a record


validation
> rule.
> >
> > Fix the record values or revert the record.
> >
> >
> > estoy en un callejon sin salida...
> >
> >
>
>
>
Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida