Toon posts:

[ASP/sql] architectuur

Pagina: 1
Acties:

Verwijderd

Topicstarter
Hoi,

Ik zit met het volgende probleem en weet niet helemaal hoe ik moet beginnen.
Ik haal een recordset op uit een oracle tabel1.
De allereerste keer moet deze recordset één op één door naar een andere oracle tabel2.
vervolgens toon ik deze records aan de gebruiker, hij kan deze gegevens wijzigen. Dan kunnen de records in één keer geupdate worden in de tabel2 (hoe doe je dat zo makkelijk mogelijk).

Een dag later lees ik weer de gegevens uit tabel1, alle record die nog niet in tabel2 staan moeten daar dan aan toegevoegd worden.

Wat is de beste manier om het bovenstaande te doen?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Door de code te schrijven die precies doet wat jij nu beschrijft? :)

Records in één keer updaten is iets dat je met transactions kunt regelen, en verder zie ik niet echt wat je probleem is. Wat lukt er precies niet?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Nou, het is niet zo dat het niet lukt. Maar meer hoe ik het aanpak.

Wat is bijvoorbeeld de beste manier om in één keer alle records van een recordset naar een andere tabel te schrijven. en wat is de beste manier om een alle records van een recordset die niet voorkomen in een tabel in één keer door te zetten naar een andere tabel. Een if then else lus lijkt me niet zo mooi? Toch?

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 22-01 23:51

NMe

Quia Ego Sic Dico.

Je kan een SELECT-statement in je INSERT opnemen.
SQL:
1
2
INSERT INTO tabel2 (kolom1, kolom2, .. kolomX)
SELECT * FROM tabel1

Uiteraard kan die select ook een where-clause krijgen, waardoor je kan bepalen wat er al dan niet in je andere tabel komt. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Verwijderd

Topicstarter
Ah, dat ga ik eens proberen.
Bedankt voor de tip...........

Verwijderd

Topicstarter
Dat werkt prima. Nu heb ik een volgende vraag. Is het mogelijk om in één sql statement de records van twee tabellen te vergelijken en zodra een record niet voorkomt in tabel A en wel in tabel B dan de status van dat record in tabel B om te zetten?

  • Gert
  • Registratie: Juni 1999
  • Laatst online: 05-12-2025
update table2 set field = value where id in select id from table1 where id not in select id from table2 ?

Of te wel, de sql is exact gelijk aan hoe je het net hebt opgeschreven..

[ Voor 56% gewijzigd door Gert op 28-07-2006 09:13 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
SQL:
1
2
3
4
5
UPDATE TableB
SET Status = 'Nieuwe Status'
FROM TableB 
LEFT OUTER JOIN TableA ON TableB.EenId = TableA.EenId
WHERE TableA.EenId IS NULL


Ik vraag me overigens wel af of je op de goede manier bezig bent. Weet je zeker dat het niet eenvoudiger kan? De acties die je beschrijft zijn niet echt gewoon in een relationele database.

Daarnaast vraag je redelijk basic dingen. Misschien is het een goed idee eens een SQL Tutorial te lezen?

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Sorry maar voor mij is dit niet heel erg basic. Heb hier wel een sql boek liggen maar weet dan even niet in welke richting ik moet zoeken. Nu wel! Bedankt.

Verwijderd

Topicstarter
Kan iemand me een tip geven wat ik hier met de haakjes verkeerd doe? Ik krijg een not properly ended foutmelding:

code:
1
("UPDATE T1 SET IND_OPEN = 'N' FROM T1_VVL LEFT OUTER JOIN T2 ON ((T1.PROCEDURENUMMER = (T2.PROCEDURENUMMER) WHERE T2.PROCEDURENUMMER IS NULL))")

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
SQL:
1
2
3
4
5
UPDATE T1 
SET IND_OPEN = 'N' 
FROM T1_VVL 
LEFT OUTER JOIN T2 ON T1.PROCEDURENUMMER = T2.PROCEDURENUMMER 
WHERE T2.PROCEDURENUMMER IS NULL


Dit moet gewoon werken.

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Ik moet het in een string meegeven (vanuit een .ASP pagina) en daar doe ik blijkbaar iets verkeerd in.

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:37

TeeDee

CQB 241

Er is niks mis met die SQL string hoor.

Verder weten we ook niet hoe en wat je 'doorgeeft'.

[ Voor 42% gewijzigd door TeeDee op 28-07-2006 11:52 ]

Heart..pumps blood.Has nothing to do with emotion! Bored


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
ASP:
1
strSQL = "UPDATE T1 SET IND_OPEN = 'N' FROM T1_VVL LEFT OUTER JOIN T2 ON T1.PROCEDURENUMMER = T2.PROCEDURENUMMER WHERE T2.PROCEDURENUMMER IS NULL"

Oops! Google Chrome could not find www.rijks%20museum.nl


Verwijderd

Topicstarter
Hmmm:

[Microsoft][ODBC driver for Oracle][Oracle]ORA-00933: SQL command not properly ended

  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:37

TeeDee

CQB 241

En als je die error nu eens letterlijk in GOOGLE zet?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • TeeDee
  • Registratie: Februari 2001
  • Laatst online: 19:37

TeeDee

CQB 241

En? Hoe heb je het nu opgelost?

Heart..pumps blood.Has nothing to do with emotion! Bored


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Verwijderd schreef op vrijdag 28 juli 2006 @ 11:43:
Kan iemand me een tip geven wat ik hier met de haakjes verkeerd doe? Ik krijg een not properly ended foutmelding:

code:
1
("UPDATE T1 SET IND_OPEN = 'N' FROM T1_VVL LEFT OUTER JOIN T2 ON ((T1.PROCEDURENUMMER = (T2.PROCEDURENUMMER) WHERE T2.PROCEDURENUMMER IS NULL))")
Dan moet je eerst uitleggen wat je hiermee wil bereiken.
Dit is geen geldige syntax voor Oracle.
code:
1
2
3
4
5
6
UPDATE [schema.]{table | view | subquery}[@dblink]
         SET { (column [, column] ...) = (subquery) 
             |  column = { expr | (subquery) } } 
          [,    { (column [, column] ...) = (subquery) 
             |  column = { expr | (subquery) } } ] ... 
         [WHERE condition]

Who is John Galt?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Kun je geen update op basis van meerdere tabellen doen in Oracle :?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Je kunt gewoon subquery's gebruiken zoals in de ansi syntax, maar niet deze update from structuur.

Who is John Galt?

Pagina: 1