Pergunta : Base de dados de usuário do SQL copiar/exportação para alcançar

Eu tenho uma rotina que seja chamada com o clique de uma tecla em VB6. Eu estou usando o usuário 2005 do MS SQL expresso, e o acesso do MS 97-2003 bases de dados. A rotina suprime de meu DB existente do acesso, recreia vazio, dá laços então através das tabelas no DB do usuário do SQL, criando as que enchem então as com os dados da tabela. Trabalha perfeitamente, a não ser que seja lenta em tabelas com grandes quantidades de dados. Isso é porque para cada tabela do SQL, abre um recordset, constrói uma corda da “inserção”, e adiciona a fileira ao acesso DB.

I comentou para fora o código que eu preciso de ser substituído. Eu gostaria deste código substituído com a uma indicação que copia os registros em um vai. Eu tentei cada permutação das indicações como “SELETO * no do ” (não trabalha porque tenta criar a tabela já-existente). “INSERÇÃO igualmente tentada no SELETO * do ”, e outras milhão coisas. Deve haver uma maneira, eu apenas não posso encontrá-la, ou talvez eu tenho mas tive a sintaxe errors.

This estou indo ser resistente. Eu não quero criar diferentemente minhas tabelas, mim não quero ouvir-se sobre DTS ou SSIS, procedimentos armazenados, ou bases de dados lig. No ponto onde o código é comentado para fora, ambas as bases de dados estão abertas, todos os nomes da tabela são sabidos e existem em ambos os DB, e tudo está pronto para o procedimento de copi. Eu apenas quero uma indicação de SQL/pergunta limpas agradáveis que copiem os registros mais rapidamente do que funcionando através dos recordsets. O único a outra resposta que eu pude aceitar está cortando o código comentado, está fechando as bases de dados, e está copiando as tabelas diferentemente. Mas recordar, você perderá os nomes da tabela que a maneira e precisará dos buscar outra vez. A idéia desta rotina é copiar toda a base de dados do SQL a um DB do acesso, sem saber qualquer coisa sobre as tabelas ou seu structure.

Sounds fáceis, mas tem-me conduzido nuts. Pode qualquer um ajudar? Abaixo está a rotina: o

Function SQLtoAccess () como Boolean
escurece o sqlDB como o jetDB não ofuscante novo de ADODB.Connection
como rs não ofuscantes novos de ADODB.Connection
como ADODB.Recordset
rt não ofuscante como
do
de ADODB.Recordset
ReDim Tables$ (os 0) da supressão empreendedores do *** do
Rem de Hell
do erro local no
do *** da base de dados do jato se Len (Dir$ (DBFileSpec$)) Then
CRFO (o *** do
Rem de If
do fim do file
matança de DBFileSpec$, de “k”, h%, 0) da “cria a garra aberta do *** do
sqlDB.Open SQLFileSpec$

Rem do *** do usuário do SQL do *** novo do
Rem do
de CreateAccessDB da chamada do
do *** da base de dados do jato (DBFileSpec$) todo o
do *** das tabelas do SQL SQL$ = “SELECIONA * DA ORDEM de INFORMATION_SCHEMA.Tables por Table_Type, rs
de Table_Name do ". Abrir SQL$, sqlDB, adOpenForwardOnly, o adLockReadOnly
quando não *** de rs.EOF
Rem excepto o
Tables$ da conserva Tables$ do
ReDim do *** do nome da tabela (UBound (Tables$) + 1) (UBound (Tables$)) = rs! Table_Name
      rs.MoveNext
   Wend
   rs.O
de Close
Screen.MousePointer = 11 do “*** do
Rem hourglass
coneta ao
do *** da base de dados do jato jetDB.Provider = “Microsoft.Jet.OLEDB.4.0 do " ciclo do *** do
Rem
jetDB.Open DBFileSpec$
através das tabelas, fazendo e enchendo as o
do *** para i% = 1 ao *** do
Rem de UBound (Tables$) começ o
do *** da informação da tabela mesa$ =
de Tables$ (i%) SQL$ = “SELECIONA” “& mesa$ &”” rs
de INFORMATION_SCHEMA.Tables do ". SQL$ abertos, sqlDB, adOpenForwardOnly, *** do adLockReadOnly
se não rs.EOF Then
Rem começ o
SQL$ = “Column_Name SELETO, Data_Type, Character_Maximum_Length,
de Is_Nullable “SQL$ = SQL$ & “de INFORMATION_SCHEMA.Columns ONDE “
SQL$ = SQL$ & “Table_Name = “” & mesa$ & “” “
rt. Abrir SQL$, sqlDB, adOpenForwardOnly, o adLockReadOnly
tbl$ =” (“
quando não rt.EOF
selecionarem o caso rt! O
do *** do byte do *** do
Rem do “tinyint " do caso do
do caso “mordeu " o
do *** do *** do
Rem txt$ = “YESNO " de Data_Type
txt$ = o
do *** do inteiro do *** do
Rem do “smallint " do caso do
do “BYTE " txt$ = o
do *** do inteiro do *** do
Rem do “int " do caso do
do “INTEIRO " txt$ = “POR MUITO TEMPO " o
do *** da moeda do *** do
Rem do “dinheiro " do caso “do
smallmoney”, txt$ = do *** “real " do
Rem do caso do
da “MOEDA "
do *** o único txt$ = “ESCOLHEM " o
do *** do dobro do *** do
Rem do “flutuador " do caso de/> txt$ =
do *** da data/hora do *** do
Rem do “timestamp " do caso “do
do “DOBRO " datetime”, “smalldatetime”, txt$ =
do *** do *** “DATETIME " do caso 9
Rem do
txt$ =
do *** do texto do *** do
Rem do “carvão animal " do caso “do
nvarchar”, “varchar”, “nchar”, ds$ = CStr (rt!
de Character_Maximum_Length) txt$ = de “do *** VELHO do memorando ou do hipervínculo do ***
Rem “do memorando do " do caso do
do *** do objeto do ***
Rem “da imagem do " do caso
NVARCHAR (” & ds$ & ") do “
txt$ = extremidade Select

“do MEMORANDO do " se rt! Is_Nullable = “NÃO” Then
txt$ = txt$ &” de
NÃO do ZERO " extremidade If
tbl$ = tbl$ & “[” & rt! Column_Name & “]” & ““& txt$ &”, “
rt.MoveNext
Wend
Mid$ (tbl$, Len (tbl$), 1) = ") “
rt. Rs de Close
. O *** de Close
Rem cria a coisa dum raio já! o
do *** SQL$ = “CRIA A TABELA [” & o mesa$ & “]” & tbl$
jetDB.Execute SQL$, achado do *** do adExecuteNoRecords
Rem todo o
do *** das chaves preliminares SQL$ = “s.name SELETO COMO TABLE_SCHEMA, t.name COMO TABLE_NAME, k.name COMO CONSTRAINT_NAME, k.type_desc COMO CONSTRAINT_TYPE, “o
SQL$ = SQL$ & “c.name COMO COLUMN_NAME, ic.key_ordinal COMO o
de ORDINAL_POSITION “SQL$ = SQL$ & “de sys.key_constraints COMO o
de k “SQL$ = SQL$ & “JUNTAM-SE a sys.tables COMO t EM o
de t.object_id = de k.parent_object_id “SQL$ = SQL$ & “JUNTAR-SE a sys.schemas COMO s EM o
de s.schema_id = de t.schema_id “SQL$ = SQL$ & “JUNTAR-SE a sys.index_columns COMO o CI EM ic.object_id = t.object_id E o
de ic.index_id = de k.unique_index_id “SQL$ = SQL$ & “JUNTA-SE a sys.columns COMO c EM o
de c.object_id = de t.object_id E de c.column_id = de ic.column_id “SQL$ = SQL$ & “ORDEM POR TABLE_SCHEMA, TABLE_NAME, CONSTRAINT_TYPE, CONSTRAINT_NAME,
rt de ORDINAL_POSITION ". SQL$ aberto, sqlDB, adOpenForwardOnly, *** do adLockReadOnly
Rem ajustou o
do *** das chaves preliminares da tabela txt$ =
do "" quando não rt.EOF
se rt! Table_Name = mesa$ Then
se rt! Constraint_Type = “PRIMARY_KEY_CONSTRAINT” Then
ConName$ = rt! Constraint_Name
txt$ = txt$ &” [“& rt! Column_Name &”], “extremidade If
rt.MoveNext
Wend
rt de If
do fim do
. Close
se Len (txt$) Then
Mid$ (txt$, Len (txt$), 1) = ") o “
SQL$ = “ALTERA A TABELA [” & mesa$ & “] ADICIONA A CHAVE PRELIMINAR do CONFINAMENTE [” & o ConName$ & “] (” & txt$
jetDB.Execute SQL$, suficiência do *** de If
Rem do fim de If
do fim do adExecuteNoRecords
'er acima! o
do *** SQL$ = “SELECIONA * [” & mesa$ & “] “dos rs do
. Abrir SQL$, sqlDB, adOpenForwardOnly, o adLockReadOnly
quando não rs.EOF
SQL$ = “INSERÇÃO [” & mesa$ & “] NOS VALORES (“
para f% = 0 aos rs. Fields.Count - 1
txt$ = SQLStr$ (rs. Coloca (f%) .value)
se txt$ =” “retificam”” Then
txt$ = “- 1 "
ElseIf txt$ =”” Then
txt$ = “0 " extremidades If
do
SQL$ = SQL$ & txt$
se f% < rs. Fields.Count - 1 Then
SQL$ = SQL$ &”, “extremidade If
f%
do
SQL$ = SQL$ & ") “
jetDB.Execute SQL$, rs do adExecuteNoRecords
rs.MoveNext
Wend
. Rs ajustados seguintes do
do
sqlDB.Close
jetDB.Close
de Close
i%
= Nothing
ajustado rt = sqlDB ajustado de Nothing
= jetDB de Nothing
=
de Nothing
Screen.MousePointer = 0 '
SQLtoAccess do normal
= de
de True

Hell de Function
da saída:
se rs. Estado = 1 rs de Then
. Rs de Close
= extremidade ajustados If
de Nothing
se rt. Estado = 1 Then
rt. Close
ajustado rt = extremidade If
de Nothing
se o <> de sqlDB.State adStateClosed sqlDB de Then
ssiDB.Close
= extremidade ajustados If
de Nothing
se o <> de jetDB.State adStateClosed jetDB de Then
jetDB.Close
= extremidade ajustados If
i% de Nothing
= o
de MsgBox (“erro”, vbCritical internos, “SQLtoAccess” & vbCrLf & vbCrLf & Err.desription) Screen.MousePointer = 0 'referências do normal

End Function

For, um exemplo de SQLFileSpec$ é:
Provider=SQLOLEDB.1; Segurança Info=FALSE de Persist; Usuário - =MyUserName da identificação; Password=MyserPassword; Catalog=MyDatabase inicial; Origem de dados =) (do local \ SQLEXPRESS; o Connect Timeout=5

And DBFileSpec$ é: o

TIA para todo o auxílio qualquer um do
C:\Database\MyAccess.mdb pode lend.
class= do

Resposta : Base de dados de usuário do SQL copiar/exportação para alcançar

Eu compreendo que, como você indic, using os trabalhos do IP mas não o nome do “DNS”, ou FDQN enquanto eu gosto do chamar.
A diferença no processo ou no “roteamento” do pedido autenticar é a edição como você a indic.
Deixar-nos examinar as diferenças: O XP VM é entrado ao domínio, e tem conseqüentemente um certificado no pronto, e sabe o nome fully-qualified e a senha do usuário. O início de uma sessão daqui automático ou do “pass-through”.

Como nós simulamos este no usuário?
Quando você entra do usuário, using o IE interno, você está usando o administrador (ou um admin-tipo) para credenciais.
Ao IIS isto olha como [email protected] OU NETBIOSNAME/username OU username.domain.extension OU username@NETBIOSNAME, OU CN=administrator, OU=etc, OU=etc, etc.
Isto deixa muitas iterações para encontrar o início de uma sessão apropriado para um usuário.
DE QUALQUER MODO: quando você usa o IP, o IE não envia as credenciais de Windows. ANULA PARA FORA AQUELES CAMPOS.
A falha mais provável é que o usuário está adicionando o domínio a um Domain Name já existente; como isto: username.domain.com.domain.com
Este usuário não existe, e não pode entrar. Nevermind que você apenas datilografou no username ou no username.domain.com
Desde que você indic que o XP e os usuários aglomerados todo o ponto ao exato o mesmo DNS, a seguir o problema devem se encontrar em um de três lugares:
1. O IE
2. Os ajustes do domínio na relação do NIC são de algum modo diferentes do que a unidade de XP. Olhar os ajustes do DNS e comparar o XP VM com o usuário. Olhar os ajustes do domínio.
3. O IIS -- esta podia ser uma edição com as credenciais exigidas e os formulários assim como o diretório virtual.
Deve haver um erro no visor do evento quando o início de uma sessão falha. Di-lo-á que edição você está enfrentando, pelo menos no sentido que identificará o nome ou a senha errada (recordar, não importa que você a põr na direita, ele importa que concorde com o formato IIS o queira e que o formato está alterado quando você está na máquina local), ou algo como “exige SSH” ou algo.

Minha suposição é: Os usuários estão adicionando Tag ou algo do domínio quando você entra diretamente deles. Se você usa um FQDN, o DNS fornece o IP, o SRV grava etc. etc. Esta informação auto-está sendo adicionada às credenciais que você datilografa dentro. Este problema exato acontece na troca não-aglomerada se você entra ao usuário como o admin local (quando o usuário da troca não é uma C.C.). O nome do admin local é seguido pelo nome da máquina (admin.termserver1) e então quando você tenta usar OWA, seu nome sai como administrator.domain.extension@termserver1
Falha. Usar o IP, e aceita datilografado nos creds.
Outras soluções  
 
programming4us programming4us