Question : Copier/base de données serveur de l'exportation SQL pour accéder

J'ai une routine qui s'appelle avec le clic d'un bouton dans VB6. J'emploie le serveur 2005 de la milliseconde SQL exprès, et le MS Access 97-2003 bases de données. La routine supprime mon DB existant d'accès, recrée vide, fait une boucle alors par les tables dans le DB de serveur de SQL, les créant les remplissant alors de données de la table. Cela fonctionne parfaitement, à moins qu'il soit lent sur des tables avec des grands nombres de données. C'est parce que pour chaque table de SQL, il ouvre un recordset, construit une corde de « insertion », et ajoute la rangée à l'accès DB.

I ont commenté dehors le code que je dois être remplacé. Je voudrais ce code remplacé par un rapport qui copie les disques dans un vont. J'ai essayé chaque permutation des rapports comme « CHOISI * DANS le du  » (ne travaille pas parce qu'il essaye de créer la table déjà-existante). « INSERTION également essayée DANS le CHOISI * du  », et million d'autres choses. Il doit y a une manière, je juste ne peux pas la trouver, ou peut-être j'ai mais ai eu la syntaxe errors.

This va être dur. Je ne veux pas créer mes tables différemment, je ne veux pas entendre parler de DTS ou SSIS, procédures stockées, ou bases de données reliées. Au point où le code est commenté dehors, les deux bases de données sont ouvertes, tous les noms de table sont connus et existent dans les deux DBs, et tout est prêt pour le procédé de copie. Je veux juste une commande SQL/Question propres gentilles qui copieront les disques plus rapidement que courant par les recordsets. Le seul l'autre réponse que je pourrais accepter coupe le code commenté, ferme les bases de données, et copie les tables différemment. Mais se rappeler, vous perdrez les noms de table dont la manière et aura besoin pour les chercher encore. L'idée de cette routine est de copier n'importe quelle base de données de SQL à un DB d'accès, sans savoir n'importe quoi au sujet des tables ou de leur structure.

semble facile, mais il m'avait conduit nuts. Est-ce que n'importe qui peut aider ? Au-dessous de est la routine : le

Function SQLtoAccess () comme Boolean
obscurcissent le sqlDB en tant que nouveau faible jetDB d'ADODB.Connection
en tant que nouveaux faibles rs d'ADODB.Connection
en tant que nouvel ADODB.Recordset
faible droite en tant que nouveau 0)
du
d'ADODB.Recordset
ReDim Tables$ (sur
de *** de base de données de gicleur de Hell
d'erreur locale le vieux du
rem de suppression GoTo de *** si Len (Dir$ (DBFileSpec$)) Then
CRFO le *** du
rem d'If
de fin du file
de mise à mort (de DBFileSpec$, de « k », h%, 0) « créent l'encavateur ouvert de *** du
sqlDB.Open SQLFileSpec$

rem de *** de serveur du nouveau de gicleur de base de données de *** du
d'appel de CreateAccessDB (DBFileSpec$) du
*** SQL du
rem tout le
de *** de tables de SQL SQL$ = « CHOISISSENT * À PARTIR DE L'ORDRE d'INFORMATION_SCHEMA.Tables par Table_Type, rs du
de Table_Name ". Ouvrir SQL$, sqlDB, adOpenForwardOnly, l'adLockReadOnly
tandis que pas *** de rs.EOF
rem sauf la conserve Tables$ (UBound (Tables$) du
ReDim de *** de nom de table + 1)
Tables$ (UBound (Tables$)) = rs ! Table_Name
      rs.MoveNext
   Wend
   rs.Le
de Close
Screen.MousePointer = 11 « *** du
rem du hourglass
se relient au
de *** de base de données de gicleur jetDB.Provider = « Microsoft.Jet.OLEDB.4.0 " cycle de *** du
rem du
jetDB.Open DBFileSpec$
par des tables, les faisant et remplissant le
de *** pour i% = 1 au *** du
rem d'UBound (Tables$) obtiennent le
de *** d'information de table mesa$ =
de Tables$ (i%) SQL$ = « CHOISISSENT » « et mesa$ et » » rs du
À PARTIR d'INFORMATION_SCHEMA.Tables des ". SQL$ ouverts, sqlDB, adOpenForwardOnly, *** de l'adLockReadOnly
sinon rs.EOF Then
rem obtiennent le
SQL$ = « Column_Name CHOISI, Data_Type, Character_Maximum_Length,
d'Is_Nullable « SQL$ = SQL$ et « d'INFORMATION_SCHEMA.Columns OÙ « 
SQL$ = SQL$ et « Table_Name = «  » et mesa$ et «  » « 
droite. Ouvrir SQL$, sqlDB, adOpenForwardOnly, l'adLockReadOnly
tbl$ = le » ("
tandis que pas rt.EOF
choisissent le cas droite ! Le
de *** de byte de *** du
rem de « tinyint " de cas du
du cas « a mordu " le
de *** de *** du
rem txt$ = « YESNO " de Data_Type
txt$ = le
de *** de nombre entier de *** du
rem de « smallint " de cas du
de « BYTE " txt$ =
de *** de nombre entier de *** du
rem de « international " de cas du
de « NOMBRE ENTIER " le long txt$ = « LONGTEMPS " le
de *** de devise de *** du
rem de « argent " de cas « du
smallmoney », txt$ = le
de *** de « vrai " *** du
rem de cas du
de « DEVISE " txt$ = « CHOISISSENT " le
de *** de double de *** du
rem de « flotteur " de cas de/> txt$ =
de *** de date/heure de *** du
rem de « horodateur " de cas « du
de « DOUBLE " date-heure », « smalldatetime », txt$ =
de *** du
de *** « DATE-HEURE " du cas 9
rem txt$ =
de *** des textes de *** du
rem de « char " de cas « du
nvarchar », « varchar », « nchar », ds$ = CStr (droite !
de Character_Maximum_Length) txt$ =
de VIEUX d'objet de *** du
rem d'image « de cas du
« de « NVARCHAR ( » et ds$ et ") de *** du
" de cas « de note " du
rem de *** *** de note ou de lien hypertexte txt$ = « extrémité Select
du
de NOTE " si droite ! Is_Nullable = « PAS » Then
txt$ = txt$ et extrémité If
de
 » PAS de NULLE " tbl$ = tbl$ et « [ » et droite ! Column_Name et « ] » et « « et txt$ et », « 
droite de/> Wend
rt.MoveNext
Mid$ (tbl$, Len (tbl$), 1) = ") « . Rs de Close
. Le *** de Close
rem créent la fichue chose déjà ! le
de *** SQL$ = « CRÉENT LA TABLE [ » et le mesa$ et « ] » et tbl$
jetDB.Execute SQL$, trouvaille de *** de l'adExecuteNoRecords
rem tout le
de *** de clés primaires SQL$ = « s.name CHOISI COMME TABLE_SCHEMA, t.name COMME TABLE_NAME, k.name COMME CONSTRAINT_NAME, k.type_desc COMME CONSTRAINT_TYPE, « le
SQL$ = SQL$ et « c.name COMME COLUMN_NAME, ic.key_ordinal le
COMME ORDINAL_POSITION « SQL$ = SQL$ et « de sys.key_constraints le
COMME k « SQL$ = SQL$ et « JOIGNENT sys.tables COMME t SUR le
de t.object_id = de k.parent_object_id « SQL$ = SQL$ et « JOINDRE sys.schemas COMME s SUR le
de s.schema_id = de t.schema_id « SQL$ = SQL$ et « JOINDRE sys.index_columns COMME IC SUR ic.object_id = t.object_id ET le
d'ic.index_id = de k.unique_index_id « SQL$ = SQL$ et « JOIGNENT sys.columns COMME c SUR le
de c.object_id = de t.object_id ET de c.column_id = d'ic.column_id « SQL$ = SQL$ et « ORDRE PAR TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME, le
droite d'ORDINAL_POSITION ". SQL$ ouvert, sqlDB, adOpenForwardOnly, *** de l'adLockReadOnly
rem a placé le
de *** des clés primaires de la table txt$ =
de "" tandis que pas rt.EOF
si droite ! Table_Name = mesa$ Then
si droite ! Constraint_Type = « PRIMARY_KEY_CONSTRAINT » Then
ConName$ = droite ! Constraint_Name
txt$ = txt$ et » [« et droite ! Column_Name et »], « extrémité If
rt.MoveNext
Wend
droite d'If
de fin du
. Close
si
de/> Then
jetDB.Execute SQL$, suffisance de *** d'If
rem de fin d'If
de fin d'adExecuteNoRecords
'heu vers le haut ! le
de *** SQL$ = « CHOISISSENT * À PARTIR [ » et mesa$ et « ] « des rs du
. Ouvrir SQL$, sqlDB, adOpenForwardOnly, l'adLockReadOnly
tandis que pas rs.EOF
SQL$ = « INSERTION DANS [ » et mesa$ et « ] ÉVALUE le ("
pour f% = 0 aux rs. Fields.Count - 1
txt$ = SQLStr$ (rs. Met en place (f%) .value)
si txt$ = » « rectifient » » Then
txt$ = « - 1 "
ElseIf txt$ = » » Then
txt$ = « 0 " extrémités If
du
SQL$ = SQL$ et txt$
si f% < rs. Fields.Count - 1 Then
SQL$ = SQL$ et », « extrémité If
prochain f%
du
SQL$ = SQL$ et ") « 
jetDB.Execute SQL$, rs de l'adExecuteNoRecords
rs.MoveNext
Wend
. Prochains i%
rs réglés du
du
sqlDB.Close
jetDB.Close
de Close
= Nothing
réglé droite = sqlDB réglé de Nothing
= jetDB de Nothing
=
de Nothing
Screen.MousePointer = 0 '
SQLtoAccess du normal
=
Hell de Function
de sortie de
de True
:
si rs. État = 1 rs de Then
. Rs de Close
= extrémité réglés If
de Nothing
si droite. État = 1 Then
droite. Close
réglé droite = extrémité If
de Nothing
si le <> de sqlDB.State adStateClosed le sqlDB = l'extrémité réglés If
de Then
ssiDB.Close
de Nothing
si le <> de jetDB.State adStateClosed le jetDB = l'extrémité réglés If
i% de Then
jetDB.Close
de Nothing
=
de MsgBox (erreur », vbCritical le « internes, « SQLtoAccess » et vbCrLf et vbCrLf et Err.desription) Screen.MousePointer = 0 'références du normal

End Function

For, un exemple de SQLFileSpec$ est :
Provider=SQLOLEDB.1 ; Sécurité Info=FALSE de Persist ; =MyUserName d'identification de l'utilisateur ; Password=MyserPassword ; Catalog=MyDatabase initial ; Point d'émission =) (de gens du pays \ SQLEXPRESS ; le Connect Timeout=5

And DBFileSpec$ est : le
C:\Database\MyAccess.mdb/>
TIA pour n'importe quelle aide n'importe qui peut lend.
class= de

Réponse : Copier/base de données serveur de l'exportation SQL pour accéder

Je comprends que, comme vous avez énoncé, using les travaux d'IP mais using pas le nom de « DNS », ou FDQN pendant que j'aime l'appeler.
La différence dans le processus ou le « cheminement » de la demande d'authentifier est l'issue comme vous l'avez énoncée.
Examinons les différences : La VM de XP est ouverte une session au domaine, et a donc un certificat au prêt, et elle sait le nom fully-qualified et le mot de passe de l'utilisateur. Ouverture par conséquent automatique ou la de « fonction émulation ».

Comment simulons-nous ceci sur le serveur ?
Quand vous ouvrez une session du serveur, using l'IE intégré, vous employez l'administrateur (ou un admin-type) pour des qualifications.
À l'IIS ceci ressemble à [email protected] OU NETBIOSNAME/username OU username.domain.extension OU username@NETBIOSNAME, OU CN=administrator, OU=etc, OU=etc, etc.
Ceci laisse beaucoup d'itérations pour trouver l'ouverture appropriée pour un utilisateur.
DE QUELQUE MANIÈRE QUE : quand vous employez l'IP, l'IE n'expédie pas les qualifications de Windows. IL MASQUE DEHORS CES CHAMPS.
L'échec le plus susceptible est que le serveur appose le domaine à un Domain Name déjà existant ; comme ceci : username.domain.com.domain.com
Cet utilisateur n'existe pas, et ne peut pas ouvrir une session. Nevermind que vous avez juste introduit au clavier l'username ou l'username.domain.com
Puisque vous déclarez que le XP et les serveurs groupés tout le point à l'exact le même DNS, puis le problème doivent se situer dans un de trois endroits :
1. L'IE
2. Les arrangements de domaine dans l'interface de NIC sont de façon ou d'autre différents que l'unité de XP. Regarder les arrangements de DNS et comparer la VM de XP au serveur. Regarder les arrangements de domaine.
3. L'IIS -- ceci a pu être une issue avec les qualifications exigées et les formes aussi bien que l'annuaire virtuel.
Il devrait y a une visionneuse d'erreur en cas quand l'ouverture échoue. Elle vous indiquera à quelle issue vous faites face, au moins dans le sens qu'elle identifiera le nom ou le mot de passe faux (se rappeler, il n'importe pas que vous le mettiez dans la droite, il importe qu'il soit conforme au format IIS le veuille et que le format soit changé quand vous êtes sur la machine locale), ou quelque chose comme « exige SSH » ou quelque chose.

Ma conjecture est : Les serveurs ajoutent des étiquettes ou quelque chose de domaine quand vous ouvrez une session directement de elles. Si vous employez un FQDN, le DNS fournit l'IP, le SRV enregistre etc. etc. Cette information automatique-est ajoutée aux qualifications que vous saisissez. Ce problème exact se produit sur l'échange non-groupé si vous ouvrez une session au serveur en tant qu'admin local (quand le serveur d'échange n'est pas un C.C). Le nom de l'admin local est suivi du nom de machine (admin.termserver1) et puis quand vous essayez d'employer OWA, votre nom sort comme administrator.domain.extension@termserver1
Il échoue. Employer l'IP, et il accepte introduit au clavier les creds.
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us