Toon posts:

[C#] Timestamp invoegen

Pagina: 1
Acties:

Verwijderd

Topicstarter
Het zit als volgt:

Voor school moet er een database migratie plaatsvinden, van een Acces DB naar een MsSQL DB.
Allemaal leuk en aardig maar in de nieuwe DB moet een timestamp worden opgegeven, maar deze mag niet NULL zijn.

Als ik de huidige gegevens opvraag uit de database krijg ik Byte[] Array, en weet nu dus niet wat voor formaat ik hier in moet voeren.

Iemand enig idee?

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:37
Hoe lees je die gegevens uit, uit die bestaande DB ?
Van welk type is dat timestamp veld in Access ?

SQL Server heeft een type 'timestamp', maar ik weet niet of dit voor jou geschikt gaat zijn.

https://fgheysels.github.io/


Verwijderd

Topicstarter
Dat is het hem, er is geen soort gelijk veld voor timestamp maar moet er dus wel iets in gaan vullen

Gegevens uit de bestande DB worden gelezen dmv deze functie

C#:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
        public DataSet geefData(string sql)
        {
            OleDbCommand cmd = new OleDbCommand(sql);
            
            con.Open();
            
            da.SelectCommand = cmd;
            da.SelectCommand.Connection = con;
            
            DataSet ds = new DataSet();
            
            ds.Clear();
            
            da.Fill(ds);
            
            con.Close();
            
            return ds;
        }


Waarbij de meegegeven sql 'SELECT * FROM Factuur' is

  • 0nline
  • Registratie: September 2006
  • Laatst online: 29-04-2018
Waarom niet gewoon een DateTime veld, met een default constraint erin?

[Forgive me, als ik je verhaal totaal verkeerd heb begrepen]

[ Voor 31% gewijzigd door 0nline op 17-10-2006 15:49 ]

Wetten zijn gemaakt om gebroken te worden


  • whoami
  • Registratie: December 2000
  • Laatst online: 00:37
Verwijderd schreef op dinsdag 17 oktober 2006 @ 15:45:
Dat is het hem, er is geen soort gelijk veld voor timestamp maar moet er dus wel iets in gaan vullen
Het Timestamp veldtype van SQL Server krijgt altijd (bij iedere insert / update) automatisch een waarde toekend door Sql Server. Alleen, dit is niet de datum van de wijziging.
(Probeer maar eens uit; maak een tabel die een timestamp column heeft, voeg een paar records toe, doe een paar updates, en bekijk de waarde van het timestamp veld; je zal zien dat het hex. opgeslagen wordt, en dan moet je even dit doen:
code:
1
select convert(datetime, timestampveld) from tabel


Als dit niet goed is voor jou, dan kan je gewoon opteren om een DateTime veld aan je tabel toe te voegen, en een Trigger op je tabel definieren (een UPDATE / INSERT trigger), die iedere keer de datum en tijd van nu aan dat veld toekent. (Dit gebeurt dan dus bij iedere update en insert).

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op dinsdag 17 oktober 2006 @ 15:53:
[...]

Het Timestamp veldtype van SQL Server krijgt altijd (bij iedere insert / update) automatisch een waarde toekend door Sql Server. Alleen, dit is niet de datum van de wijziging.
(Probeer maar eens uit; maak een tabel die een timestamp column heeft, voeg een paar records toe, doe een paar updates, en bekijk de waarde van het timestamp veld; je zal zien dat het hex. opgeslagen wordt, en dan moet je even dit doen:
code:
1
select convert(datetime, timestampveld) from tabel


Als dit niet goed is voor jou, dan kan je gewoon opteren om een DateTime veld aan je tabel toe te voegen, en een Trigger op je tabel definieren (een UPDATE / INSERT trigger), die iedere keer de datum en tijd van nu aan dat veld toekent. (Dit gebeurt dan dus bij iedere update en insert).
Ok met die convert krijg ik de waardes 1-1-1990 in ieder veld (dit is dus de nieuwe MSSQL DB)
Mijn vraag is nu:

Hoe geef ik 1-1-1990 in een byte[] Array (blijkbaar?) mee aan mijn INSERT? Of zit ik nu helemaal verkeerd te denken?
Of zou die die timestamp dus automatisch in moeten vullen?

  • whoami
  • Registratie: December 2000
  • Laatst online: 00:37
Die timestamp wordt automatisch gevuld, zoals ik al zei. Maar, dit is dus niet de datum van vandaag.
Die timestamp is eigenlijk imho enkel bedoeld om een soort van optimistic concurrency te implementeren, en niet om aan te tonen wanneer een record laatst gewijzigd werd. (imho)

https://fgheysels.github.io/


Verwijderd

Topicstarter
whoami schreef op dinsdag 17 oktober 2006 @ 16:07:
Die timestamp wordt automatisch gevuld, zoals ik al zei. Maar, dit is dus niet de datum van vandaag.
Die timestamp is eigenlijk imho enkel bedoeld om een soort van optimistic concurrency te implementeren, en niet om aan te tonen wanneer een record laatst gewijzigd werd. (imho)
Ja precies ok het lijkt nu inderdaad alsof hij hem zelf invult, ik zal deze zo nog even updaten om te laten weten of het gelukt is

Verwijderd

Topicstarter
Verwijderd schreef op dinsdag 17 oktober 2006 @ 16:10:
[...]


Ja precies ok het lijkt nu inderdaad alsof hij hem zelf invult, ik zal deze zo nog even updaten om te laten weten of het gelukt is
Het is inderdaad gelukt!
Gewoon weghalen en klaar is kees :S
bedankt voor de moeite in ieder geval!
Pagina: 1