[SQL/ASP] (inhoud van) tabellen kopieren naar andere d.base

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • Andre1234
  • Registratie: November 2009
  • Laatst online: 01-01-2022
Beste Tweakers,
Om een online forum ook offline beschikbaar te maken heb ik laatst een topic geopend. Mede hierdoor heb ik het volgende besloten.
Er draait een SQL2000 database met (classic) ASP op een server op het intranet, dit wordt gebruikt als soort forum. Nu wil ik dit forum ook op een lokaal werkstation gaan draaien wat niet is verbonden met het intranet. Hiervoor wil ik op het lokale werkstation IIS gaan draaien met SQL2005 express.
Het is vanwege de firewall, welke instellingen ik niet kan veranderen, niet mogelijk om vanuit een ASP pagina op de server een connectie te maken naar de lokale database.
Wel is het andersom mogelijk; vanuit een lokale ASP pagina een verbinding te maken naar de lokale database en 2e verbinding te maken naar de database op het intranet.

Uiteindelijk zal er een button komen op het forum wat de lokale database (SQL2005 Express) vult met de gegevens uit de database (MSSQL2000) op het intranet. De oplossing die ik zelf kan bedenken is ik een functie maak die eerst de lokale tabel helemaal verwijderd, en vervolgens de de tabel opnieuw aanmaakt met SELECT INTO.
De juiste syntax krijg ik hier niet voor elkaar, beide connecties werken maar ik krijg de query niet werkend.
Met welke connectie (ConnOffline.Open of ConnOnline.Open) dient de query gerunt te worden:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
'****************************************************************************** 
'   MSDE2005 Express  database connectie
'******************************************************************************  
               
Set ConnOffline = Server.CreateObject("ADODB.Connection")
ConnOffline.Open "Provider=SQLOLEDB; Data Source = ***\SQLEXPRESS; Initial Catalog = kbbtoffline; User Id = **; Password = **"

'******************************************************************************
'   MSSQL database connectie
'******************************************************************************
  
  Set ConnOnline = CreateObject("ADODB.Connection")
  ConnOnline.Open "Provider=SQLOLEDB.1;Data Source=***;Initial Catalog=kbbt;User ID=***;Password=***;Persist Security Info=True;Network Library=dbmssocn;"

Query = "SELECT * INTO test IN kbbtoffline FROM kbbt"
Set objRs = ConnOnline.Execute (Query)


Ook ben ik even bezig geweest met Microsoft SQL Server database publishing wizard, hier kan ik een script mee genereren (*.sql) wat ik op kan slaan en later in de lokale database kan inladen. kan ik op 1 of andere manier dit script ook via een ASP pagina starten. Zoals ik het nu zie haalt dit script de huidige stand op en laad deze in. Dus worden er nieuwe posten in het forum gezet zal dit script weer opnieuw gegenereerd moeten worden worden.

De tabellen zijn onderling gekoppeld via primary keys, deze dienen dus gehandhaaft te worden bij het overzetten.

Welke methode kunnen jullie mij adviseren?

Acties:
  • 0 Henk 'm!

  • whoami
  • Registratie: December 2000
  • Laatst online: 12:52
Ik snap iets niet hoor ...

Lokaal werkstation heeft geen toegang tot het Intranet.
Hoe kan je dan, vanaf dat lokaal werkstation, toegang krijgen tot die databank ? Wat dat zeg je toch ? :
Wel is het andersom mogelijk; vanuit een lokale ASP pagina een verbinding te maken naar de lokale database en 2e verbinding te maken naar de database op het intranet.
Je zal één connectie moeten maken, en dan de ene database als een 'linked server' toevoegen bij de andere database.
Dan kan je een query doen zoals:
code:
1
SELECT * INTO [lokaalwerkstation].dbo.tabel FROM [databaseserver].[dbo].[tabel]

https://fgheysels.github.io/


Acties:
  • 0 Henk 'm!

  • Andre1234
  • Registratie: November 2009
  • Laatst online: 01-01-2022
Bedankt voor je reactie, Whoami.
Wat ik bedoel is dat als ik de asp pagina run op de intranet server met beide connecties de foutmelding
"[DBNETLIB][ConnectionOpen (Connect()).]Specified SQL server not found" verschijnt.
Run ik diezelfde asp pagina op de lokale pc, wel verbonden met het intranet, krijg ik geen foutmelding.
E.e.a. is dus zo ingesteld dat je vanuit de serveromgeving geen connectie kan maken naar je lokale database en andersom wel.

Het is dus alleen mogelijk om met een linked server de query
SELECT * INTO [lokaalwerkstation].dbo.tabel FROM [databaseserver].[dbo].[tabel]
uit te voeren?

Ik heb nog nooit een linked server gemaakt kan je mij hiermee op weg helpen?