Microsoft
Software
Hardware
Network
Frage : Kopieren/Export-SQL-Server-Datenbank, um zurückzugreifen
Ich habe ein Programm, das mit dem Klicken eines Knopfes in VB6 benannt. Ich verwende den Eil Mitgliedstaat-SQL-Server 2005 und Mitgliedstaat-Zugang 97-2003 Datenbanken. Das Programm löscht mein vorhandenes Zugang DB, neu erstellt ein leeres, schlingt dann durch die Tabellen im SQL-Server DB und herstellt sie sie mit den Daten der Tabelle dann füllend e. Es funktioniert tadellos, ausgenommen es auf Tabellen mit großen Mengen Daten langsam ist. Das ist, weil für jede SQL-Tabelle, es ein recordset öffnet, eine „Einsatz“ Schnur errichtet und die Reihe dem Zugang DB.
I kommentiert heraus der Code hinzufügt, den ich ersetzt werden muss. Ich möchte diesen Code ersetzt durch eine Aussage, die die Aufzeichnungen in einer gehen kopiert. Ich versucht jede Permutation von Aussagen wie „AUSERWÄHLTES * IN
vom
“ (arbeitet nicht, weil es versucht, die bereits-vorhandene Tabelle herzustellen). Auch versuchter „EINSATZ in das
AUSERWÄHLT * vom
“ und Million andere Sachen. Es muss eine Weise geben, kann ich sie nicht finden gerade, oder möglicherweise habe ich, aber hatte Syntax errors.
This werde ein starkes sein. Ich möchte nicht meine Tabellen irgendwie anders als herstellen, ich möchte nicht über DTS oder SSIS, gespeicherte Verfahren oder verbundene Datenbanken hören. Am Punkt, in dem der Code heraus kommentiert, sind beide Datenbanken geöffnet, bekannt alle Tabellennamen und existieren in beiden DBs, und alles ist zum kopierenverfahren bereit. Ich wünsche gerade eine nette saubere SQL-Aussage/eine Frage, die die Aufzeichnungen schneller als kopieren, laufend durch die recordsets. Das einzige andere Antwort, die ich annehmen konnte, herausschneidet den kommentierten Code erten, schließt die Datenbanken und kopiert die Tabellen anders als. Aber erinnern, verlieren Sie die Tabellennamen, die Weise und benötigt, um sie wieder zu holen. Die Idee dieses Programms ist, jede mögliche SQL-Datenbank zu einem Zugang DB zu kopieren, ohne alles über die Tabellen oder ihr structure.
Sounds zu kennen einfach, aber sie gefahren mich nuts. Kann jemand helfen? Unter ist das Programm:
Function SQLtoAccess () als Boolean
verdunkeln sqlDB als neues ADODB.Connection
schwaches jetDB als neue ADODB.Connection
schwache rs als neue ADODB.Recordset
schwache Funktelegrafie als neues ADODB.Recordset
ReDim Tables$ (0)
auf lokale Störung Goto- Hell
Rem *** Löschung-altem Strahlendatenbank ***
, wenn Len (Dir$ (DBFileSpec$)) Then
CRFO (DBFileSpec$, „k-“, h%, 0) „Tötung file
Ende If
Rem *** verursachen neues Strahlendatenbank ***
Anruf CreateAccessDB (DBFileSpec$
)
Rem *** geöffnetes SQL-Server ***
sqlDB.Open SQLFileSpec$
Rem *** Zupacken alles SQL-Tabellen ***
SQL$ = „VORWÄHLEN * vom INFORMATION_SCHEMA.Tables AUFTRAG durch Table_Type, Table_Name "
rs. SQL$, sqlDB öffnen adOpenForwardOnly adLockReadOnly
, während nicht rs.EOF
Rem *** außer Tabellenname ***
ReDim Konserve Tables$ (UBound (Tables$) + 1)
Tables$ (UBound (Tables$)) = rs! Table_Name
rs.MoveNext
Wend
rs.Close
Screen.MousePointer = 11 „hourglass
Rem *** anschließen an Strahlendatenbank ***
jetDB.Provider = „Microsoft.Jet.OLEDB.4.0 "
jetDB.Open DBFileSpec$
Rem *** Zyklus durch die Tabellen ", sie erhalten ***
für i% = 1 UBound (Tables$) bildend und füllend
Rem zum *** Tabelleninfo ***
mesa$ = Tables$ (i%)
SQL$ = „VORWÄHLEN“ „u. mesa$ u.““ VON INFORMATION_SCHEMA.Tables "
rs. SQL$, sqlDB öffnen adOpenForwardOnly adLockReadOnly
, wenn nicht rs.EOF Then
Rem *** erhalten Spalteninfo ***
SQL$ = „AUSERWÄHLTES Column_Name, Data_Type, Character_Maximum_Length, Is_Nullable „
SQL$ = SQL$ u. „VON INFORMATION_SCHEMA.Columns
WO „
SQL$ = SQL$ u. „Table_Name = „“ u. mesa$ u. „“ „
Funktelegrafie. SQL$, sqlDB öffnen adOpenForwardOnly adLockReadOnly
tbl$ =“ („
, während nicht rt.EOF
Fallfunktelegraphie vorwählen! Data_Type
Fall „biß "
Rem *** ja/nein ***
txt$ = „YESNO "
Fall „tinyint "
Rem *** Byte ***
txt$ = „BYTE "
Fall „smallint "
Rem *** ganze Zahl ***
txt$ = „GANZE ZAHL "
Fall „int "
Rem *** langes ganze Zahl ***
txt$ = „LANG "
Fall„smallmoney“, „Geld "
Rem *** Währung ***
txt$ = „WÄHRUNG "
Fall „reales "
Rem *** einzelnes ***
txt$ = „AUSSONDERN "
Fall„Hin- und Herbewegung "
Rem *** Doppeltes ***
txt$ = „DOPPELTES "
Fall„Datum/Uhrzeit“, „smalldatetime“, „Zeitstempel "
Rem *** Datum/Zeit ***
txt$ = „DATUM/UHRZEIT-"
Fall 9
Rem *** binäres ***
txt$ = „BINÄRES "
Fall„nvarchar“, „varchar“, „nchar“, „Putzfrau "
Rem *** Text ***
ds$ = CStr (Funktelegrafie! Character_Maximum_
Length)
txt$ = „NVARCHAR (“ u. ds$ u. ") „
Fall„Bild "
Rem *** ALTES Gegenstand ***
Fall„Protokoll "
Rem *** Protokoll oder Hyperlink ***
txt$ = „PROTOKOLL "
Ende Select
wenn Funktelegrafie! Is_Nullable = „NICHT“ Then
txt$ = txt$ u.“ NICHT NULL "
Ende If
tbl$ = tbl$ u. „[“ u. Funktelegrafie! Column_Name u. „]“ u. „„u. txt$ u.“, „
Wend
rt.MoveNext
Mid$ (tbl$, Len (tbl$), 1) = ") „
Funktelegrafie. Close
rs. Close
Rem *** verursachen die verfluchte Sache bereits! ***
SQL$ = „VERURSACHEN TABELLE [“ u. mesa$ u. „]“ u. tbl$
jetDB.Execute SQL$, adExecuteNoRecords
Rem *** Entdeckung alles Primärschlüssel ***
SQL$ = „AUSERWÄHLTES s.name ALS TABLE_SCHEMA, t.name ALS TABLE_NAME, k.name ALS CONSTRAINT_NAME, k.type_desc ALS CONSTRAINT_TYPE, „
SQL$ = SQL$ u. „c.name ALS COLUMN_NAME, ic.key_ordinal ALS ORDINAL_POSITION „
SQL$ = SQL$ u. „VON sys.key_constraints ALS k „
SQL$ = SQL$ u. „VERBINDEN sys.tables ALS t AUF t.object_id = k.parent_object_id „
SQL$ = SQL$ u. „sys.schemas ALS s AUF VERBINDEN s.schema_id = t.schema_id „
SQL$ = SQL$ u. „Sys.index_columns ALS IC AUF VERBINDEN ic.object_id = t.object_id UND ic.index_id = k.unique_index_id „
SQL$ = SQL$ u. „VERBINDEN sys.columns ALS c AUF c.object_id = t.object_id UND c.column_id = ic.column_id „
SQL$ = SQL$ u. „AUFTRAG DURCH TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME, ORDINAL_POSITION "
Funktelegrafie. Geöffnetes SQL$, sqlDB adOpenForwardOnly adLockReadOnly
Rem *** einstellte das
*** Primärschlüssel der Tabelle txt$ = ""
während nicht rt.EOF
wenn Funktelegrafie nn! Table_Name = mesa$ Then
wenn Funktelegrafie! Constraint_Type = „PRIMARY_KEY_CONSTRAINT“ Then
ConName$ = Funktelegrafie! Constraint_Name
txt$ = txt$ u.“ [„u. Funktelegrafie! Column_Name u.“], „
Ende If
Ende If
rt.MoveNext
Wend
Funktelegrafie. Close
, wenn Len (txt$) Then
Mid$ (txt$, Len (txt$), 1) = ") „
SQL$ = „TABELLE ÄNDERN [“ u. mesa$ u. „] ADDIEREN BEGRENZUNGS-[“ u. ConName$ u. „] PRIMÄRSCHLÜSSEL (“ u. txt$
jetDB.Execute SQL$, adExecuteNoRecords
Ende If
Ende If
Rem *** Fülle 'äh oben! ***
SQL$ = „VORWÄHLEN * [“ u. mesa$ u. „] „
von den rs. SQL$, sqlDB öffnen adOpenForwardOnly adLockReadOnly
während nicht rs.EOF
SQL$ = „EINSATZ IN [“ u. mesa$ u. „] WERTE („
für f% = 0 zu den rs. Fields.Count - 1
txt$ = SQLStr$ (rs. Auffängt (f%) .valu
e)
, wenn txt$ =““ Then
txt$ = „„ausrichten“ - 1 "
ElseIf txt$ =“ „falsches““ Then
txt$ = „0 "
Ende If
SQL$ = SQL$ u. txt$
wenn nn f% < rs. Fields.Count - 1 Then
SQL$ = SQL$ u.“, „
Ende If
folgendes f%
SQL$ = SQL$ u. ") „
jetDB.Execute SQL$, adExecuteNoRecords
rs.MoveNext
Wend
rs. Close
folgende i%
sqlDB.Close
jetDB.Close
gesetzte rs = Nothing
gesetzt Funktelegrafie = Nothing
gesetztes sqlDB = Nothing
gesetztes jetDB = Nothing
Screen.MousePointer = 0 'normal
SQLtoAccess = True
Ausgang Function
Hell:
wenn rs. Zustand = 1 Then
rs. Close
gesetzte rs = Nothing
Ende If
wenn Funktelegrafie. Zustand = 1 Then
Funktelegrafie. Gesetztes Close
Funktelegrafie = Nothing
Ende If
, wenn sqlDB.State <> Then
ssiDB.Close
gesetztes sqlDB = Nothing
Ende If
adStateClosed, wenn jetDB.State <> Then
jetDB.Close
gesetztes jetDB = Nothing
Ende If
i% = MsgBox („interne Störung“, vbCritical, „SQLtoAccess“ u. vbCrLf u. vbCrLf u. Err.desription)
Screen.MousePointer = 0 'normal
End Function
For Hinweis adStateClosed, ein Beispiel von SQLFileSpec$ ist:
Provider=SQLOLEDB.1; Persis
t Sicherheit Info=FALSE; Benutzernummer =MyUserName; Password=My
serPasswor
d; AnfangsCatalog=MyDatabase; Datenquelle = (Einheimisch) \ SQLEXPRESS;
Connect Timeout=5
And DBFileSpec$ ist:
C:\Database\MyAccess.mdb
TIA für jede mögliche Unterstützung jedermann kann lend.
Antwort : Kopieren/Export-SQL-Server-Datenbank, um zurückzugreifen
Ich verstehe dass, wie Sie erklärt, using die IP-Arbeiten aber nicht den „DNS-“ Namen oder FDQN, während ich es benennen mag.
Der Unterschied bezüglich des Prozesses oder „der Wegewahl“ des Antrags zu beglaubigen ist die Ausgabe, wie Sie sie erklärt.
Uns die Unterschiede überprüfen lassen: Die XP VM angemeldet zum Gebiet, und hat folglich eine Bescheinigung am bereiten, und sie kennt des fully-qualified den Namen und Kennwort Benutzers. Folglich der automatische oder „Durchgang“ LOGON.
Wie simulieren wir dieses auf dem Bediener?
Wenn Sie vom Bediener, using das eingebaute IE anmelden, benutzen Sie des Verwalters (oder eine Adminart) für Bescheinigungen.
Zum IIS aussieht dieses wie administrator@domain.extension
ODER NETBIOSNAME/username ODER username.domain.extension ODER username@NETBIOSNAME ODER CN=administrator, OU=etc, OU=etc, etc.
Dieses lässt viele Wiederholungen, um den korrekten LOGON für einen Benutzer zu finden.
JEDOCH: wenn Sie das IP benutzen, nachschickt das IE nicht die Windows-Bescheinigungen kt. ES LÖSCHT HERAUS JENE FELDER.
Der höchstwahrscheinliche Ausfall ist, dass der Bediener das Gebiet zu einem bereits vorhandenen Domain Name anfügt; so: username.domain.com.domain.com
Dieser Benutzer existiert nicht und kann nicht anmelden. Nevermind, das Sie gerade in username oder in username.domain.com schrieben
Da Sie erklären, dass das XP und die gesammelten Bediener aller Punkt zum genauen die gleiche DNS, dann das Problem in einem von drei Plätzen liegen müssen:
1. Das IE
2. Die Gebietseinstellungen in der NIC-Schnittstelle sind irgendwie unterschiedlich als die XP Maßeinheit. Die DNS-Einstellungen betrachten und die XP VM mit dem Bediener vergleichen. Die Gebietseinstellungen betrachten.
3. Das IIS -- diese konnte eine Ausgabe mit den erforderten Bescheinigungen und den Formen sein sowie das virtuelle Verzeichnis.
Es sollte einen Projektor der Störung im Falle geben, wenn der LOGON ausfällt. Er erklärt Ihnen, welche Ausgabe Sie gegenüberstellen, mindestens in der Richtung, dass er falschen Namen oder Kennwort kennzeichnet (erinnern, ausmacht es nicht, dass Sie es in Recht einsetzen, es ausmacht es, dass es mit dem Format IIS wünscht es übereinstimmt und dass Format geändert, wenn Sie auf dem lokalen Rechner sind), oder etwas wie „erfordert SSH“ oder etwas.
Meine Vermutung ist: Die Bediener addieren Gebietsumbauten oder -etwas, wenn Sie direkt von ihnen anmelden. Wenn Sie ein FQDN benutzen, liefert die DNS das IP, das SRV notiert etc. etc. Diese Informationen Selbst-hinzugefügt zu den Bescheinigungen onen, die Sie eintippen. Dieses genaue Problem geschieht auf nicht-gesammeltem Austausch, wenn Sie zum Bediener als lokaler admin anmelden (wenn der Austauschbediener nicht ein DC ist). Der lokalen Name des admins gefolgt vom Maschinennamen (admin.termserver1) und dann, wenn Sie versuchen, OWA zu verwenden, herauskommt Ihr Name wie administrator.domain.extension@termserver1 kommt
Er ausfällt lt. Das IP benutzen und es annimmt geschrieben in den creds n.
Weitere Lösungen
Wort-Presse, die Frage bewirtet
asp.net: Mein Problem ist, benutze ich einen ajax Ergänzung Kalender, um BeginDate u. EndDate Werte einzutragen
Silverlight 4 UI Ereignisse
wie kann ich irgendeine Bildentschließung online ändern und sie zum lokalen PC dann innen sparen??
ZFS Sicherungshilfe Ubuntu 10.0.4 LTS
Form-Frage für Kristallreports
Betreffend INOTES in Lotos 8.5
Mühen, die ZWISCHEN Logik erhalten zu arbeiten
Spannungs-Sensor ermittelte einen Ausfall auf Bediener DELL-PowerEdge 2650
broadcom NIC teaming