Cuestión : Base de datos de servidor del SQL copiar/de la exportación para tener acceso

Tengo una rutina que se llame con el tecleo de un botón en VB6. Estoy utilizando el servidor 2005 del ms SQL expreso, y el acceso del ms 97-2003 bases de datos. La rutina suprime mi DB existente del acceso, reconstruye vacío, entonces coloca a través de las tablas en el DB del servidor del SQL, creándolas entonces que las llenan de los datos de la tabla. Trabaja perfectamente, a menos que sea lenta en las tablas con granes cantidades de datos. Eso es porque para cada tabla del SQL, abre un recordset, construye una secuencia del “parte movible”, y agrega la fila al acceso DB.

I ha comentado hacia fuera el código que necesito ser substituido. Quisiera este código substituido por una declaración que copia los expedientes en uno va. He intentado cada permutación de declaraciones como “SELECTO * EN del ” (no trabaja porque intenta crear la tabla ya-existente). “PARTE MOVIBLE también intentado EN el SELECTO * de ”, y millón de otras cosas. Debe haber una manera, apenas no puedo encontrarla, o tengo pero tenía quizá sintaxis errors.

This voy a ser resistente. No quiero crear mis tablas diferentemente, yo no quiero oír hablar DTS o SSIS, los procedimientos almacenados, o las bases de datos enlazadas. En el punto donde se comenta el código hacia fuera, ambas bases de datos están abiertas, todos los nombres de la tabla se saben y existen en ambos DB, y todo está listo para el procedimiento de copiado. Apenas quiero una declaración de SQL/una pregunta limpias agradables que copien los expedientes más rápidamente que funcionando a través de los recordsets. El único la otra respuesta que puede ser que acepte está cortando el código comentado, está cerrando las bases de datos, y está copiando las tablas diferentemente. Pero recordar, usted perderá los nombres de la tabla que la manera y necesitará para traerlos otra vez. La idea de esta rutina es copiar cualquier base de datos del SQL a un DB del acceso, sin saber cualquier cosa sobre las tablas o su structure.

parece fácil, pero me ha estado conduciendo nuts. ¿Puede cualquier persona ayudar? Debajo está la rutina: el

Function SQLtoAccess () como Boolean
amortigua el sqlDB como nuevo jetDB dévil de ADODB.Connection
como nuevos rs déviles de ADODB.Connection
como nuevo ADODB.Recordset
rt dévil como nuevo 0)
del
de ADODB.Recordset
ReDim Tables$ (en
del *** de la base de datos del jet de Hell
del error local el viejo del
Rem de la cancelación indicada del *** si Len (Dir$ (DBFileSpec$)) Then
CRFO el *** del
Rem de If
del final del file
de la matanza (de DBFileSpec$, de “k”, el h%, 0) “crea el gancho agarrador abierto del *** del
sqlDB.Open SQLFileSpec$

Rem del *** del servidor del SQL del nuevo del jet de la base de datos del *** del
de la llamada de CreateAccessDB (DBFileSpec$) del
*** del
Rem todo el
del *** de las tablas del SQL SQL$ = “SELECCIONA * DE ORDEN de INFORMATION_SCHEMA.Tables de Table_Type, rs del
de Table_Name ". Abrir SQL$, sqlDB, adOpenForwardOnly, el adLockReadOnly
mientras que no *** de rs.EOF
Rem excepto el coto Tables$ (UBound (Tables$) del
ReDim del *** del nombre de la tabla + 1)
Tables$ (UBound (Tables$)) ¡= rs! Table_Name
      rs.MoveNext
   Wend
   rs.El
de Close
Screen.MousePointer = 11 “*** del
Rem del hourglass
conecta con el
del *** de la base de datos del jet jetDB.Provider = “Microsoft.Jet.OLEDB.4.0 " ciclo del *** del
Rem del
jetDB.Open DBFileSpec$
a través de las tablas, haciéndolas y llenando el
del *** para el i% = 1 al *** del
Rem de UBound (Tables$) consigue el
del *** de la tabla Info mesa$ = el
de Tables$ (el i%) SQL$ = “SELECCIONA” “y mesa$ y”” rs del
de INFORMATION_SCHEMA.Tables ". SQL$ abiertos, sqlDB, adOpenForwardOnly, *** del adLockReadOnly
si no rs.EOF Then
Rem consiguen el
SQL$ = “Column_Name SELECTO, Data_Type, Character_Maximum_Length,
de Is_Nullable “SQL$ = SQL$ y “de INFORMATION_SCHEMA.Columns DONDE “
SQL$ = SQL$ y “Table_Name = “” y mesa$ y “” “
rt. ¡Abrir SQL$, sqlDB, adOpenForwardOnly, el adLockReadOnly
tbl$ =” (“el
mientras que no rt.EOF
seleccionan el caso rt! El
del *** del octeto del *** del
Rem del “tinyint " del caso del
del caso “mordió " el
del *** del *** del
Rem txt$ = “YESNO " de Data_Type
txt$ = el
del *** del número entero del *** del
Rem del “smallint " del caso del
del “OCTETO " txt$ = el
del *** del número entero del *** del
Rem de la “internacional " del caso del
del “NÚMERO ENTERO " txt$ = “DE LARGO " el
del *** de la moneda del *** del
Rem del “dinero " del caso “del
smallmoney”, txt$ =
del *** del *** “verdadero " del
Rem del caso del
de la “MONEDA " el solo txt$ = “ESCOGEN " el
del *** del doble del *** del
Rem del “flotador " del caso de/> txt$ =
del *** de la fecha/de la hora del *** del
Rem del “reloj fechador " del caso “del
del “DOBLE " fecha y hora”, “smalldatetime”, txt$ =
del *** del
del *** “DATETIME " del caso 9
Rem txt$ =
del *** del texto del *** del
Rem del “carbón de leña " del caso “del
nvarchar”, “varchar”, “nchar”, ds$ = CStr (rt! ¡
de Character_Maximum_Length) txt$ =
del objeto del *** del
Rem de la imagen " del caso del
“de “NVARCHAR (” y ds$ y ") “del *** del
del caso “de la nota " del
Rem del *** del *** VIEJO de la nota o del enlace hipertexto txt$ = “extremo Select
del
de la NOTA " si rt! ¡Is_Nullable = “NO” Then
txt$ = txt$ y extremo If
del
” NO de la FALTA DE INFORMACIÓN " tbl$ = tbl$ y “[” y rt! Column_Name y “]” y ““y txt$ y”, “
rt de/> Wend
rt.MoveNext
Mid$ (tbl$, Len (tbl$), 1) = ") “. Rs de Close
. ¡El *** de Close
Rem crea la cosa maldita ya! el
del *** SQL$ = “CREA LA TABLA [” y mesa$ y “]” y tbl$
jetDB.Execute SQL$, hallazgo del *** del adExecuteNoRecords
Rem todo el
del *** de las llaves primarias SQL$ = “s.name SELECTO COMO TABLE_SCHEMA, t.name COMO TABLE_NAME, k.name COMO CONSTRAINT_NAME, k.type_desc COMO CONSTRAINT_TYPE, “el
SQL$ = SQL$ y “c.name COMO COLUMN_NAME, ic.key_ordinal COMO el
de ORDINAL_POSITION “SQL$ = SQL$ y “de sys.key_constraints COMO el
de k “SQL$ = SQL$ y “ENSAMBLAN sys.tables COMO t EN el
de t.object_id = de k.parent_object_id “SQL$ = SQL$ y “ENSAMBLAR sys.schemas COMO s EN el
de s.schema_id = de t.schema_id “SQL$ = SQL$ y “ENSAMBLAR sys.index_columns COMO ic EN ic.object_id = t.object_id Y el
de ic.index_id = de k.unique_index_id “SQL$ = SQL$ y “ENSAMBLA sys.columns COMO c EN el
de c.object_id = de t.object_id Y de c.column_id = de ic.column_id “SQL$ = SQL$ y “ORDEN POR TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME,
rt de ORDINAL_POSITION ". ¡SQL$ abierto, sqlDB, adOpenForwardOnly, *** del adLockReadOnly
Rem fijó el
del *** de las llaves primarias de la tabla txt$ = el
del "" mientras que no rt.EOF
si rt! ¡Table_Name = mesa$ Then
si rt! ¡Constraint_Type = “PRIMARY_KEY_CONSTRAINT” Then
ConName$ = rt! ¡Constraint_Name
txt$ = txt$ y” [“y rt! Column_Name y”], “extremo If
rt.MoveNext
Wend
rt de If
del final del
. ¡Close
si Len (txt$) Then
Mid$ (txt$, Len (txt$), 1) = ") “
SQL$ = “ALTERA LA TABLA [” y mesa$ y “] AGREGA LLAVE PRIMARIA del CONSTREÑIMIENTO [” y ConName$ y “] (” y txt$
jetDB.Execute SQL$, terraplén del *** de If
Rem del final de If
del final del adExecuteNoRecords
'er para arriba! el
del *** SQL$ = “SELECCIONA * [” y mesa$ y “] “de rs del
. Abrir SQL$, sqlDB, adOpenForwardOnly, el adLockReadOnly
mientras que no rs.EOF
SQL$ = “PARTE MOVIBLE EN [” y mesa$ y “] los VALORES (“
para el f% = 0 a los rs. Fields.Count - 1
txt$ = SQLStr$ (rs. Coloca (el f%) .value)
si txt$ =” “verdad”” Then
txt$ = “- 1 "
ElseIf txt$ =”” Then
txt$ = “0 " extremos If
del
SQL$ = SQL$ y txt$
si el f% < rs. Fields.Count - 1 Then
SQL$ = SQL$ y”, “extremo If
f%
del
SQL$ = SQL$ y ") “
jetDB.Execute SQL$, rs del adExecuteNoRecords
rs.MoveNext
Wend
. Rs determinados siguientes del
del
sqlDB.Close
jetDB.Close
de Close
i%
= Nothing
determinado rt = sqlDB determinado de Nothing
= jetDB de Nothing
=
de Nothing
Screen.MousePointer = 0 '
SQLtoAccess del normal
=
Hell de Function
de la salida del
de True
:
si rs. Estado = 1 rs de Then
. Rs de Close
= extremo determinados If
de Nothing
si rt. Estado = 1 Then
rt. Close
determinado rt = extremo If
de Nothing
si el <> de sqlDB.State adStateClosed el sqlDB = extremo determinados If
de Then
ssiDB.Close
de Nothing
si el <> de jetDB.State adStateClosed el jetDB = extremo determinados If
el i% de Then
jetDB.Close
de Nothing
= el
de MsgBox (“error”, vbCritical internos, “SQLtoAccess” y vbCrLf y vbCrLf y Err.desription) Screen.MousePointer = 0 'referencias del normal

End Function

For, un ejemplo de SQLFileSpec$ es:
Provider=SQLOLEDB.1; Seguridad Info=FALSE de Persist; =MyUserName de la identificación del usuario; Password=MyserPassword; Catalog=MyDatabase inicial; Dato Source= (local) \ SQLEXPRESS; el Connect Timeout=5

And DBFileSpec$ es: el

TIA para cualquier ayuda cualquier persona del
C:\Database\MyAccess.mdb puede lend.
class= del

Respuesta : Base de datos de servidor del SQL copiar/de la exportación para tener acceso

Entiendo que, como usted ha indicado, usar los trabajos del IP pero no el nombre del “DNS”, o FDQN mientras que tengo gusto de llamarlo.
La diferencia en el proceso o la “encaminamiento” de la petición de authenticar es la edición como usted la ha indicado.
Examinemos las diferencias: El XP VM se abre una sesión al dominio, y por lo tanto tiene un certificado en el listo, y sabe el nombre fully-qualified y la contraseña del usuario. La conexión por lo tanto automática o del “paso”.

¿Cómo simulamos esto en el servidor?
Cuando usted abre una sesión del servidor, usar el IE incorporado, usted está utilizando el administrador (o un admin-tipo) para las credenciales.
Al IIS esto parece [email protected] O NETBIOSNAME/username O username.domain.extension O username@NETBIOSNAME, O CN=administrator, OU=etc, OU=etc, etc.
Esto deja muchas iteraciones para encontrar la conexión apropiada para un usuario.
AL MENOS: cuando usted utiliza el IP, el IE no remite las credenciales de Windows. ESCONDE HACIA FUERA ESOS CAMPOS.
La falta más probable es que el servidor está añadiendo el dominio a un Domain Name ya existente; como esto: username.domain.com.domain.com
Este usuario no existe, y no puede abrirse una sesión. Nevermind que usted acaba de mecanografiar en el username o username.domain.com
Puesto que usted indica que el XP y los servidores arracimados todo el punto al exacto el mismo DNS, después el problema deben mentir en uno de tres lugares:
1. El IE
2. Los ajustes del dominio en el interfaz del NIC son de alguna manera diferentes que la unidad de XP. Mirar los ajustes del DNS y comparar el XP VM con el servidor. Mirar los ajustes del dominio.
3. El IIS -- esto podía ser una edición con las credenciales requeridas y las formas así como el directorio virtual.
Debe haber un error en el espectador del acontecimiento cuando la conexión falla. Le dirá qué edición usted está haciendo frente, por lo menos en el sentido que identificará nombre o contraseña incorrecto (recordar, no importa que usted la ponga en la derecha, él importa que convenga con el formato IIS lo quiera y que el formato está alterado cuando usted está en la máquina local), o algo como “requiere SSH” o algo.

Mi conjetura es: Los servidores están agregando etiquetas o algo del dominio cuando usted se abre una sesión directo de ellos. Si usted utiliza un FQDN, el DNS proporciona el IP, el SRV registra etc. etc. Esta información auto-se está agregando a las credenciales que usted mecanografía adentro. Este problema exacto sucede en intercambio no-arracimado si usted abre una sesión al servidor como admin local (cuando el servidor del intercambio no es una C.C.). El nombre del admin local es seguido por el nombre de la máquina (admin.termserver1) y entonces cuando usted intenta utilizar OWA, su nombre sale como administrator.domain.extension@termserver1
Falla. Utilizar el IP, y acepta mecanografiado en creds.
Otras soluciones  
 
programming4us programming4us