SQL INSERT
Moderator: Moderatoren
Re: SQL INSERT
HALLO
Mittlerweile habe ich den INSERT hinbekoemn.Die Tabbele war corrupt.
Nun kan cih imemr ncoh nicht das Datum ändern.Wenn ich versuche die Funktion DATEADD() zu benutzen kommt
ACCES Denied kann mir jemand helfen?
Mittlerweile habe ich den INSERT hinbekoemn.Die Tabbele war corrupt.
Nun kan cih imemr ncoh nicht das Datum ändern.Wenn ich versuche die Funktion DATEADD() zu benutzen kommt
ACCES Denied kann mir jemand helfen?
-
- ********
- Beiträge: 4330
- Registriert: Di, 22.06.2004 12:02
- Wohnort: 71134 Aidlingen
- Kontaktdaten:
Re: SQL INSERT
So lange Du keine Parameter mitgibst wird dies auch so bleiben. Hier findest Du Beispiele http://www.eulanda.de/inside/entwickler ... ateadd.htm.
Gruß
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Peter
---------------------------------------------------------------------------
Windows 7 Prof. 64-bit SP1, LibreOffice 4.3.6.2 und AOO 4.1.1
Re: SQL INSERT
Ich ahbe aber Parameter mitgegeben :
Code:
UPDATE "Tabelle" SET "xyz" = DATEADD(yy,1,xyz)
DANKE
Code:
UPDATE "Tabelle" SET "xyz" = DATEADD(yy,1,xyz)
DANKE
Re: SQL INSERT
Wenn Dein Datumsfeld vom Typ Date ist, wäre das Format zum speichern "2010-02-18" in Gänsefüsschen.
DateAdd liefert aber 2011-02-18 12:56:41.610 zurück. Ich bin mir nicht sicher ob das so funktioniert!
Gruß eBayer
DateAdd liefert aber 2011-02-18 12:56:41.610 zurück. Ich bin mir nicht sicher ob das so funktioniert!
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: SQL INSERT
Ich könnte auhc in Timestamp umwandeln hätte 2008-01.01 00:00:00 oder so kein Problem.
Hätte Jemand sonst eine Idee wie ich eni Datum ändern könnte
Danke
Hätte Jemand sonst eine Idee wie ich eni Datum ändern könnte
Danke

Re: SQL INSERT
Kommt schon Leute kann mir keiner helfen?
Re: SQL INSERT
Hallo Vampir,
wofür hast Du Deine spitzen Zähne..... beiß Dich durch.
Unter Basic-Hilfe findest Du alles was Du zur Konvertierung des Datums brauchst.....
Dateadd ist übrigens keine SQL-Funktion, kann also von einem SQL-Statement nicht aufgelöst werden.
Trotzdem, versuch es mal mit der folgenden Funktion.
Du übergibst der Funktion Dein mit Dateadd errechnetes Datum und bekommst ein SQL-kompatibles Datum als String zurück.
Dann baust Du die Connection zur DB auf und baust dann Dein SQL-Statement zusammen - etwa wie folgt:
dDatum = Dateadd.............
sDatum = convSqlDate(dDatum)
sSQL = "UPDATE "DeineTabelle" SET ""DeinDatum"" = '" + sDatum + "'" ' achte auf das einfache Hochkomma!!!
oStatement.executeUpdate(sSQL)
Gruß eBayer
Function convSqlDate(dDatum) As String ' Datum in das gültige Format für SQL konvertieren
convSqlDate = left(dDatum,4) + "-" + mid(dDatum,5,2) + "-" + mid(dDatum,7,2)
End Function
wofür hast Du Deine spitzen Zähne..... beiß Dich durch.

Unter Basic-Hilfe findest Du alles was Du zur Konvertierung des Datums brauchst.....
Dateadd ist übrigens keine SQL-Funktion, kann also von einem SQL-Statement nicht aufgelöst werden.
Trotzdem, versuch es mal mit der folgenden Funktion.
Du übergibst der Funktion Dein mit Dateadd errechnetes Datum und bekommst ein SQL-kompatibles Datum als String zurück.
Dann baust Du die Connection zur DB auf und baust dann Dein SQL-Statement zusammen - etwa wie folgt:
dDatum = Dateadd.............
sDatum = convSqlDate(dDatum)
sSQL = "UPDATE "DeineTabelle" SET ""DeinDatum"" = '" + sDatum + "'" ' achte auf das einfache Hochkomma!!!
oStatement.executeUpdate(sSQL)
Gruß eBayer
Function convSqlDate(dDatum) As String ' Datum in das gültige Format für SQL konvertieren
convSqlDate = left(dDatum,4) + "-" + mid(dDatum,5,2) + "-" + mid(dDatum,7,2)
End Function
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: SQL INSERT
HAllo
Um ehrlcih zu sien habe ich keinerlein BASIC-Kenntnisse.Ich würde das eher lieber über Extras->SQL machen.Den Obengennanten INSERT mqche ich auch über Extras.
Hat einer eine Idee wie ich über einfaches SQL das machen kann?
DANKE
Um ehrlcih zu sien habe ich keinerlein BASIC-Kenntnisse.Ich würde das eher lieber über Extras->SQL machen.Den Obengennanten INSERT mqche ich auch über Extras.
Hat einer eine Idee wie ich über einfaches SQL das machen kann?
DANKE
Re: SQL INSERT
Hier ist Mein Code
INSERT INTO "Trbd"(select NULL,( "F-Mon"+'365'),"Adr-#","Produkt","Hersteller","Re#","Lizenznehmer","Vorgang",
"Kapazität","RKZ","SKZ","V#","Von","Bis","V-Beginn","VAT-ID","Währung","Netto","Mwst","Brutto","Kurs"
FROM "Trbd"
WHERE "SKZ" ='D' AND "F-Mon" BETWEEN
'2008-01-01' AND '2010-10-01')
Meine Idee mit der Select (x+'365')klapt nur wenn ich versuche es ebi einem zahlenfeld zu machen.
Weder bei Date(passiert ncihts) ncoh bei TIMESTAMP komt ein Fehler value too long funktionierts.
Bitte helft mir mal.
INSERT INTO "Trbd"(select NULL,( "F-Mon"+'365'),"Adr-#","Produkt","Hersteller","Re#","Lizenznehmer","Vorgang",
"Kapazität","RKZ","SKZ","V#","Von","Bis","V-Beginn","VAT-ID","Währung","Netto","Mwst","Brutto","Kurs"
FROM "Trbd"
WHERE "SKZ" ='D' AND "F-Mon" BETWEEN
'2008-01-01' AND '2010-10-01')
Meine Idee mit der Select (x+'365')klapt nur wenn ich versuche es ebi einem zahlenfeld zu machen.
Weder bei Date(passiert ncihts) ncoh bei TIMESTAMP komt ein Fehler value too long funktionierts.
Bitte helft mir mal.
Re: SQL INSERT
Hallo Vampir,
schau einfach mal hier nach. Wenn Du dann nicht weiterkommst, schau die Doku von HSQLDB an.
http://user.services.openoffice.org/en/ ... 96&start=0
http://www.hsqldb.org/doc/guide/guide.html
Gruß eBayer
schau einfach mal hier nach. Wenn Du dann nicht weiterkommst, schau die Doku von HSQLDB an.
http://user.services.openoffice.org/en/ ... 96&start=0
http://www.hsqldb.org/doc/guide/guide.html
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: SQL INSERT
Hallo
ich ahbe alle diese Libnks bereits geshen.Es hilft mir kein bsihcen weiter.
Mein Problem ist immer noch dies dass ich nur mit SQL-Statements ohen Basic,Pythoon oder sonst was dass ichi zum Datumfeld keine Tage,Jahre oder Monate addieren kann.
Bitte immernoch um Hilfe
ich ahbe alle diese Libnks bereits geshen.Es hilft mir kein bsihcen weiter.
Mein Problem ist immer noch dies dass ich nur mit SQL-Statements ohen Basic,Pythoon oder sonst was dass ichi zum Datumfeld keine Tage,Jahre oder Monate addieren kann.
Bitte immernoch um Hilfe
Re: SQL INSERT
Du wirst nicht um ein Makro herumkommen, denn HSQLDB verfügt nur über eingeschränkte Datumsfunktionen.
Wenn Du MySQL einsetzt...... Dort gibt es die Funktion adddate.
Gruß eBayer
Wenn Du MySQL einsetzt...... Dort gibt es die Funktion adddate.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Re: SQL INSERT
Hallo vampir666,
die Mittel in der HSQLDB sind, was Dein Problem angeht, mehr als bescheiden. Entweder greifst Du auf richtige Datenbanken zurück (eBayer hat ja schon z.B. MySQL erwähnt) oder Du bist bereit für eine große Rumpfriemelei.
Trotz allem gehts auch hier. Ist zwar recht umständlich, führt aber zum Ergebnis. Folgender Code wandelt ein Datum in das Datum des nächsten Jahres um. Der 29. Februar wird auf den 1. März des darauffolgenden Jahres gelegt.
Baue das einfach in Deine Abfrage ein: ("Datum" steht für die Datumsspalte - SQL direkt ausführen!)
Am besten Du lässt diesen Code mal auf eine Probetabelle mit Datumsspalte los.
Gruß Barlee
die Mittel in der HSQLDB sind, was Dein Problem angeht, mehr als bescheiden. Entweder greifst Du auf richtige Datenbanken zurück (eBayer hat ja schon z.B. MySQL erwähnt) oder Du bist bereit für eine große Rumpfriemelei.
Trotz allem gehts auch hier. Ist zwar recht umständlich, führt aber zum Ergebnis. Folgender Code wandelt ein Datum in das Datum des nächsten Jahres um. Der 29. Februar wird auf den 1. März des darauffolgenden Jahres gelegt.
Baue das einfach in Deine Abfrage ein: ("Datum" steht für die Datumsspalte - SQL direkt ausführen!)
Code: Alles auswählen
...
CAST(CAST(YEAR("Datum") AS INT)+1||'-'||TO_CHAR(
CASE WHEN TO_CHAR("Datum",'MM') = '02' AND CAST(TO_CHAR("Datum",'DD') AS INT) >28
THEN CAST(TO_CHAR("Datum",'YYYY')||'-'||'03'||'-'||'01' AS DATE)
ELSE "Datum" END
,'MM')||'-'||TO_CHAR(
CASE WHEN TO_CHAR("Datum",'MM') = '02' AND CAST(TO_CHAR("Datum",'DD') AS INT) >28
THEN CAST(TO_CHAR("Datum",'YYYY')||'-'||'03'||'-'||'01' AS DATE)
ELSE "Datum" END
,'DD') AS DATE) AS "Jahr+1"
...
Am besten Du lässt diesen Code mal auf eine Probetabelle mit Datumsspalte los.
Gruß Barlee
Re: SQL INSERT
Vielen Dank für die vielen antworten
ich habe angefangen mich mit basic auseinander zu setzen.
Dank dem Ebayer habe ich folgenden code erstellt.
Sub Main
Dim sPassword,sPDSName,sUser,sErrorMsg, sOutput_File_Name,sView_Name, sDrop_CSV_SQL,dDatum, sDatum as String
Dim oStatement, oDBSource, oConnection As Object
sPDSName ="Fakturierung"
sTable_Name ="Trbd"
dDatum = Dateadd(yy,1,F-Mon)
sDatum = convSqlDate(dDatum)
sSQL = "UPDATE "Trbd" SET ""F-Mon"" = '" + sDatum + "'"
oStatement.executeUpdate(sSQL)
MsgBox "Erstellt"
End Sub
wenn ich den ausführe bleibt das Macro hängen.
was kann ich tun?
Danke
ich habe angefangen mich mit basic auseinander zu setzen.
Dank dem Ebayer habe ich folgenden code erstellt.
Sub Main
Dim sPassword,sPDSName,sUser,sErrorMsg, sOutput_File_Name,sView_Name, sDrop_CSV_SQL,dDatum, sDatum as String
Dim oStatement, oDBSource, oConnection As Object
sPDSName ="Fakturierung"
sTable_Name ="Trbd"
dDatum = Dateadd(yy,1,F-Mon)
sDatum = convSqlDate(dDatum)
sSQL = "UPDATE "Trbd" SET ""F-Mon"" = '" + sDatum + "'"
oStatement.executeUpdate(sSQL)
MsgBox "Erstellt"
End Sub
wenn ich den ausführe bleibt das Macro hängen.
was kann ich tun?
Danke
Re: SQL INSERT
Hallo Vampir,
ich werde Dir heute Spätnachmittag eine Korrektur Deines Makros schicken... habe jetzt keine Zeit mehr.
Aber soviel vorab....
1. wenn Du auf ein Datenfeld (z.B. F-Mon) zugreifen willst, mußt Du natürlich vorher die Tabelle mit dem passenden Datensatz gelesen haben.
So wie Du auf F-Mon zugreifst, ist das nicht möglich, da Du keinen Zugriff auf die Tabelle programmiert hast.
2. Hast Du die Funktion ConvSqlDate eingebaut? In Deinem Codefragment sehe ich nichts davon.
Gruß eBayer
ich werde Dir heute Spätnachmittag eine Korrektur Deines Makros schicken... habe jetzt keine Zeit mehr.
Aber soviel vorab....
1. wenn Du auf ein Datenfeld (z.B. F-Mon) zugreifen willst, mußt Du natürlich vorher die Tabelle mit dem passenden Datensatz gelesen haben.
So wie Du auf F-Mon zugreifst, ist das nicht möglich, da Du keinen Zugriff auf die Tabelle programmiert hast.
2. Hast Du die Funktion ConvSqlDate eingebaut? In Deinem Codefragment sehe ich nichts davon.
Gruß eBayer
Intel(R) Core(TM)2 Quad CPU Q8200 @ 2.33GHz mit 4 GB Memory (3,2 GB aktiv)
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008
Vista Home Premium 32 Bit
openOffice 3.1.1 mit Sun Report Builder 1.1.0 und MySql 5.1
Hauptinteresse ooBase seit 12.2008