webForumDet fria alternativet

Kopiera info från tabell till en tabell i annan databas

ASP

14 svar · 888 visningar · startad av wazid

Medlem sedan maj 2001156 inlägg
Frågan#1

Har sökt igenom gamla inlägg men inte riktigt fått svar på mitt problem.

Jag vill hämta data från vissa fält från en tabell i en databas (AS400) och spara den i en annan databas (access).

Denna uppdatering vill jag sedan göra på speciella tider på dygnet.

Jag vet hur jag ska connecta till de båda databaserna, men kan inte riktigt komma på koden för kopieringen.
Om tabellerna legat i samma databas så är det inga problem, men nu är de ju i olika databaser.

Några tips?

MvH

David

Medlem sedan nov. 200021 inlägg
#2

Hej =)

Min lösning sker ju manuellt. Kanske inte den bsäta men borde fungera iaf?

1. Hämta värden från AS400 och skriv ut fältvärden i formulärfält mha t ex
<input type="text" name="formnamn" value="<%=rs("fältnamn")%>">

2. Skicka sedan detta formulär till asp-sida som uppdaterar/för in datan i din Accessdatabas.

Om du sökte en lösning på hur detta sker automatiskt på bestämd tid så kan jag nog inte hjälpa dig...

Medlem sedan jan. 2001510 inlägg
#3

Vet du om SQL fungerar i AS400?

Medlem sedan jan. 20013 406 inlägg
#4

Lösningen ovan var ju inte den bästa jag sett. Om du bara ska flytta över en rad från databasen kan du lätt göra detgenom att ta ut alla fält i variabler och sedan på samma sida kasta in dem i den nya databasen

1 öppna databaskoppling1
2 hämta informationen från databas1 och placera det ivariabler
3 stäng databaskoppling1
4 öppna databaskoppling2
5 sätt in variablerna i databas2
6 stäng databaskoppling2

Om du vill att det ska bli säkert så kan du använda ADO-transactions. Alltså om ett steg avbryts så går allting tillbaka till det ursprunliga
------------------
Adde

[Redigerat av Addeladde den 26 jun 2001]

Medlem sedan aug. 2000234 inlägg
#5

I AS400 sitter det en DB2 databas som stödjer SQL. Så det går bra att i ett VBScript att koppla mot den och hämta datan och sen koppla mot Access och lägga in. En .vbs fil går att schemalägga.

Ett annat sätt är att i AS400 skapa en query och spara som en fil. Ladda över till NT som en kommaseparerad textfil med ClientAccess. Sen är det bara (!) att skriva ett skript som läser in textfilen till databasen.

Bästa sättet är förmodligen att direkt köra mot DB2an, men det kanske du inte kan/får/vill...

Medlem sedan maj 2001156 inlägg
#6

Hmmm

Vet inte riktigt vilken lösning som låter bäst.
Att hämta info från AS400 och mellanlagra i variabler låter ju simpelt, men problemet är att detär väldigt många poster. Flera hundra tusen.
Är det risk att man kraschar webservern då?

En kommaseparerad textfil kanske blir lösningen.

Men finns det inget kommando i SQL för att kopiera en tabell från en databas till en annan??

David

Medlem sedan jan. 20013 406 inlägg
#7

Jo det går att kopiera hela tabeller från en databas till en annan. Jag har tyvär inget script jag kan ge dig nu på direkten.

------------------
Adde

Medlem sedan aug. 2000234 inlägg
#8

Flera hundra tusen poster... hur kommer det att fungera i en Access databas (ngn som vet?). Framför allt om den ska kopplas mot webben och förhoppningsvis ska få flera samtidiga användare.

Om du skriver ett VBScript så använder du inte webbservern, utan scriptmotorn i NT (om du nu kör NT). Jag gjorde nått liknande i NT4. Använde då kommaseparerade textfiler som jag läste in rad för rad i Access (finns nog bättre lösning på detta).

Enklare att schemalägga en .vbs fil i stället för en .asp fil. (tycker jag i alla fall)

Jag antar att du ska ut med informationen på en webbsida, så bäst prestanda får du nog om du använder dig av DB2 databasen i stället för Access.

Medlem sedan maj 2001156 inlägg
#9

Nej

Det ska inte ut på webben.
Det ska användas i ett intranät med ca 10 användare.
Idag utvecklar jag det på min egen dator (Win 98 SE och PWS).
Men sedan när det ska användas så blir det NT och då väl IIS.

Jag vill/får inte köra direkt mot AS400 utan vill lyfta bort lite av trafiken som går mot den, till webservern istället.

Att schamlägga en .vbs fil låter ju helt OK.
Bygger man upp en sådan fil på samma sätt som en ASP fil? (baserad på Visual Basic Script alltså)

David

Medlem sedan mars 20002 836 inlägg
#10

ja du .... inte skulle jag köra en Access db med flera hundra tusen poster i .....

Körde ett experiment häromdagen då jag la in ca 100 000 poster .... wooopzzziiiii process tider på mellan 3 och 5 sekunder, samma db som med ca 4000 poster hade process tider på 150 millisekunder ...

Inget roligt det kan jag säga, och detta kördes i ett LAN =(

BLir nog att tänka om angående DBMS, tex MS-SQL eller mySQL

cya,
PatrikB

------------------
*Det tar sig sa han som hade eld i håret*

Medlem sedan mars 20002 836 inlägg
#11

vi har själva setat med ett liknande problem där vi INTE fick koppla direkt mot ASET.
Vi löste det så att de en ggn i veckan kör ut en excell fil och sedan körs den in i MS-SQL dbn.
Den uppdateringen sköter vi manuellt idag men kommer inom en snar framtid att ske schema lagt

cya,
PatrikB

------------------
*Det tar sig sa han som hade eld i håret*

Medlem sedan maj 2001431 inlägg
#12

Kan du inte bara från access importera tabellen/frågan direkt till en tabell? Rutinen kan sedan startas med ett makro av AT/Task Scheduler.

Medlem sedan maj 20015 inlägg
#13

Använd sql server och skapa en DTS
som hämtar data från AS/400.

Medlem sedan mars 20002 836 inlägg
#14

Jag vill/får inte köra direkt mot AS400

vilket är utestlutet eftersom det inte går/man får inte accessa ASET hur som helst ....

cya,
PatrikB

------------------
*Det tar sig sa han som hade eld i håret*

Medlem sedan maj 2001156 inlägg
#15

Tack för alla synpunkter.

Har nu installerat MySQL, och river mig i huvet, då jag försöker lära mig det.
Får väl avsätta de närmaste dagarna åt det.
Har i alla fall lyckats konvertera Accessdatabasen till mySQL.
Tänkte se om sökningarna går snabbare nu än med Access.
Har dock problem med att connecta...

Angående uppdateringen så kanske bästa sättet är att göra en query i AS400 och exportera den som en textfil och sedan läsa in den i mySQL.

Jag återkommer säkert med fler frågeställningar.

David

265 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
128 ms — deklarationer (db)
0 ms — hämta statistik (cache)
134 ms — hämta tråd, inlägg och bilagor (db)
127 ms — ändringar (db)