Numerischen Wert in Access-Datenbanken schreiben

Anfängerfragen zum Programmieren mit PureBasic.
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Numerischen Wert in Access-Datenbanken schreiben

Beitrag von ThoPie »

Hallo,
ich schreibe an einem Datenbankprogramm welches auf eine Access-Tabelle zugreift. In einer Tabelle ist ein numerischer Wert, diesen möchte ich mit dem DatabaseUpdate-Befehl ändern. Der Wert der eingetragen werden soll ist in einer Variable vom Typ long gespeichert.
Irgendwie klappt das aber nicht. Hier ein Codeausschnitt

Code: Alles auswählen

DatabaseQuery(#db,"SELECT * FROM tabelle")
NextDatabaseRow(#db)
DatabaseUpdate(#db,"UPDATE tabelle SET feld="+variable+")
Wie muss ich denn da die Anführungszeichen setzen?
Vielen Dank.
Benutzeravatar
Fluid Byte
Beiträge: 3110
Registriert: 27.09.2006 22:06
Wohnort: Berlin, Mitte

Beitrag von Fluid Byte »

Code: Alles auswählen

DatabaseUpdate(#db,"UPDATE tabelle SET feld=" + Str(PB_Variable))
Windows 10 Pro, 64-Bit / Outtakes | Derek
ThoPie
Beiträge: 130
Registriert: 19.05.2006 15:18
Kontaktdaten:

Beitrag von ThoPie »

in echt?

mit Str() in ein numerisches Feld.
Hatte auch mal daran gedacht das zu versuchen, aber wieder verworfen.

Na gut - ich probier es mal...
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

muss man das bei Access-DB's nicht in Hochkommata setzen, wie bei MySQL - DB's ?

also ich meine so:

Code: Alles auswählen

DatabaseUpdate(#db,"UPDATE tabelle SET feld='" + Str(PB_Variable) + "'")
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Benutzeravatar
mk-soft
Beiträge: 3855
Registriert: 24.11.2004 13:12
Wohnort: Germany

Beitrag von mk-soft »

auf jeden fall besser.

Damit es bei übergabe eines Datums nicht zu Problemen mit der eingestellten Sprache gibt verwende ich folgende Funktionen.

Code: Alles auswählen

;-TOP
; Kommentar     : Formatumwandlung von Datum nach SQL Datum
; Author        : mk-soft
; Second Author : 
; Datei         : DateHelper.pb
; Version       : 1.01
; Erstellt      : 2007.03.03
; Geändert      :
; 
; Compilermode  : 
;
; ***************************************************************************************

Import "oleaut32.lib"
 VarBstrFromDate(dblln.d, lcid.l, dwFlags.l, *pbstrOut)                                                 
 VarDateFromStr(strIn.p-unicode, lcid.l, dwFlags, *pdateOut)
EndImport

; ***************************************************************************************

Procedure.s SqlDateStrFromDate(date.d)

  Protected result.s, datum.s, *pbstrOut
  
  If VarBstrFromDate(date, $0407, #LOCALE_NOUSEROVERRIDE, @*pbstrOut) <> #S_OK
    ProcedureReturn "0000-00-00 00:00:00"
  EndIf
  
  result = PeekS(*pbstrOut,#PB_Any, #PB_Unicode)
  SysFreeString_(*result)
  If Len(result) <= 8
    ProcedureReturn "0000-00-00 00:00:00"
  EndIf
  
  datum = Mid(result, 7, 4) + "-"
  datum + Mid(result, 4, 2) + "-"
  datum + Mid(result, 0, 2) + " "
  datum + Mid(result, 12, 8)
  If Len(datum) < 12
    datum + "00:00:00"
  EndIf
  ProcedureReturn datum
  
EndProcedure

; ***************************************************************************************

Procedure.s SqlDateStrFromDateStr(date.s)

  Protected datum.d, result.s

  VarDateFromStr(date, 0, #LOCALE_NOUSEROVERRIDE, @datum)
  result = SqlDateStrFromDate(Datum)
  ProcedureReturn result
  
EndProcedure

; ***************************************************************************************

; Test

datum.d = 23974.625

Debug SqlDateStrFromDate(datum)  
Debug SqlDateStrFromDateStr("8/20/65 3:00 PM")
Debug SqlDateStrFromDateStr("20.8.65 15:00")
Debug SqlDateStrFromDateStr("20-08-65 15:00")
Debug SqlDateStrFromDateStr("1965.08.20 15:00")

; Datumsformat komplett
accessdatum.s = "#" + SqlDateStrFromDateStr("8/20/65 3:00 PM") + "#"
Debug accessdatum

Datum ist von Type Date (Double) -> http://www.purebasic.fr/german/viewtopi ... ght=exdate
Alles ist möglich, fragt sich nur wie...
Projekte ThreadToGUI / EventDesigner V3 / OOP-BaseClass-Modul
Downloads auf MyWebspace / OneDrive
Benutzeravatar
Kiffi
Beiträge: 10714
Registriert: 08.09.2004 08:21
Wohnort: Amphibios 9

Beitrag von Kiffi »

Bisonte hat geschrieben:muss man das bei Access-DB's nicht in Hochkommata setzen, wie bei MySQL - DB's ?
das muss man nur bei Feldern vom Typ Text machen.

Grüße ... Kiffi
a²+b²=mc²
Antworten