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

#1 StressedMonkey
10/12/2004 - 23:50 | Informe spam
Se pueden abrir 2 conecciones a la vez, entonces usas un 'Select' statement
para obtener los datos de la access db, pero abres la recordset en modo
editable, o sea:

Set mdbconn = Server.CreateObject("ADODB.CONNECTION")
mdbconn.Open = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\path..mdb"
Set rsaccess = Server.CreateObject("ADODB.Recordset")
rsaccess.LockType = 3
sqlaccess = "select blah from blah where blah = 'blah'"
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=your_DSN","UID=username","Pwd=password;"

'pasas los valores de la access recordset a variables

nombre = rsaccess.fields("nombre") 'etc

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

sqlfoxpro = "insert into tabla(nombre, etc) " &_
"values('"&nombre&"', '"&etc&"')

'ahora borras el record de access

rsaccess.Delete

'cierrass las coneccionnes

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

'de esta manera si no funciona el insert, no se borra el record de la access
db.

Sergio.

"Rookie" wrote in message
news:
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
Respuesta Responder a este mensaje
#2 StressedMonkey
10/12/2004 - 23:53 | Informe spam
Perdona, se me olvido la parte que hace el insert funcionar:

sqlfoxpro = "insert into tabla(nombre, etc) " &_
"values('"&nombre&"', '"&etc&"')



conn.Execute sqlfoxpro


'ahora borras el record de access




"StressedMonkey" wrote in message
news:
Se pueden abrir 2 conecciones a la vez, entonces usas un 'Select'


statement
para obtener los datos de la access db, pero abres la recordset en modo
editable, o sea:

Set mdbconn = Server.CreateObject("ADODB.CONNECTION")
mdbconn.Open = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=D:\path..mdb"
Set rsaccess = Server.CreateObject("ADODB.Recordset")
rsaccess.LockType = 3
sqlaccess = "select blah from blah where blah = 'blah'"
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=your_DSN","UID=username","Pwd=password;"

'pasas los valores de la access recordset a variables

nombre = rsaccess.fields("nombre") 'etc

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

sqlfoxpro = "insert into tabla(nombre, etc) " &_
"values('"&nombre&"', '"&etc&"')

'ahora borras el record de access

rsaccess.Delete

'cierrass las coneccionnes

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

'de esta manera si no funciona el insert, no se borra el record de la


access
db.

Sergio.

"Rookie" wrote in message
news:
> 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


Respuesta Responder a este mensaje
#3 Rookie
11/12/2004 - 00:37 | Informe spam
Gracias por tu ayuda, he buscado en internet por dias... he modificado el
codigo y me envia este error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Visual FoxPro Driver]Cannot update the cursor.
/Symbol/Pedido_Pass_events.asp, line 50

linea 50 es donde se ejecuta el insert:

'linea 49
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 'esta es la linea 50

aca esta mi codigo completo:

' -
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=;"

'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

'cierrass las coneccionnes

rsaccess.Close
Set rsaccess = Nothing
mdbconn.Close
Set mdbconn = Nothing
conn.Close
Set conn = Nothing
' -
Respuesta Responder a este mensaje
#4 StressedMonkey
11/12/2004 - 01:05 | Informe spam
Me parece que el problema es con los permisos del file system, en explorer
navega a la carpeta donde esta tu bd foxpro y asegurate que no esta marcada
'Read Only', tambien asegurate que la cuenta del servidor (iusr_servidor)
tiene permiso 'Modify'.


"Rookie" wrote in message
news:
Gracias por tu ayuda, he buscado en internet por dias... he modificado el
codigo y me envia este error:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Visual FoxPro Driver]Cannot update the cursor.
/Symbol/Pedido_Pass_events.asp, line 50

linea 50 es donde se ejecuta el insert:

'linea 49
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 'esta es la linea 50

aca esta mi codigo completo:

' -
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=;"

'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

'cierrass las coneccionnes

rsaccess.Close
Set rsaccess = Nothing
mdbconn.Close
Set mdbconn = Nothing
conn.Close
Set conn = Nothing
' -
Respuesta Responder a este mensaje
#5 StressedMonkey
11/12/2004 - 01:23 | Informe spam
http://support.microsoft.com/kb/q294469/


"StressedMonkey" wrote in message
news:
Me parece que el problema es con los permisos del file system, en explorer
navega a la carpeta donde esta tu bd foxpro y asegurate que no esta


marcada
'Read Only', tambien asegurate que la cuenta del servidor (iusr_servidor)
tiene permiso 'Modify'.


"Rookie" wrote in message
news:
> Gracias por tu ayuda, he buscado en internet por dias... he modificado


el
> codigo y me envia este error:
> Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
> [Microsoft][ODBC Visual FoxPro Driver]Cannot update the cursor.
> /Symbol/Pedido_Pass_events.asp, line 50
>
> linea 50 es donde se ejecuta el insert:
>
> 'linea 49
> 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 'esta es la linea 50
>
> aca esta mi codigo completo:
>
> ' -
> 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=;"
>
> '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
>
> 'cierrass las coneccionnes
>
> rsaccess.Close
> Set rsaccess = Nothing
> mdbconn.Close
> Set mdbconn = Nothing
> conn.Close
> Set conn = Nothing
> ' -


Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida