SQL INSERT

Antwort erstellen


BBCode ist eingeschaltet
[img] ist ausgeschaltet
[url] ist eingeschaltet
Smileys sind ausgeschaltet

Die letzten Beiträge des Themas
   

Ansicht erweitern Die letzten Beiträge des Themas: SQL INSERT

Re: SQL INSERT

von vampir666 » Fr, 26.02.2010 10:40

Gut ich habe die Aufgabe doch gemeistert

Es Funktioniert mit der Funktion a=cDate(x)

für x irgenein String.
in a kommt dann das richtige Datum

Re: SQL INSERT

von vampir666 » Fr, 26.02.2010 09:37

Hallo
Nach langer Quellerei kann ich die agnez tabelle in die andere Übernehemn.
Nur 1 Fehelr habe ihc immer noch.
Ich kann kein Datum holen.
Ich hole aber ein String aber wie kann ich ihn in ein Datum umwandeln.
Bitte um Hilfe

MFG

Re: SQL INSERT

von eBayer » Di, 23.02.2010 12:56

Deine Frage macht deutlich, daß Du noch erheblichen Informationsbedarf zu Datenbanken hast.
Eine Tabelle in ooBase ist nicht zu verwechseln mit einer Calc-Tabelle.
Versuche doch einfach mal mit System an die Sache heranzugehen und schau Dir mal die folgenden Links an.
Gruß eBayer

http://de.openoffice.org/doc/index.html
http://www.dannenhoefer.de/faqstarbasic/index.html
http://www.wienandt.de/seiten/datenbank.htm

Re: SQL INSERT

von vampir666 » Di, 23.02.2010 11:02

Die agnez korektur ist nciht nötig könntest du mir aber sagen wie man eine Tabele defenirt.
Bisher ist die nur als eine art Matrix Tabelle(100,30) as String.
Ich ahbe aber in der Tabele Datum und Integerwerte.
gruss

Re: SQL INSERT

von eBayer » Di, 23.02.2010 09:12

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

Re: SQL INSERT

von vampir666 » Di, 23.02.2010 08:19

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

Re: SQL INSERT

von Barlee » Sa, 20.02.2010 11:45

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!)

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

von eBayer » Fr, 19.02.2010 15:52

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

Re: SQL INSERT

von vampir666 » Fr, 19.02.2010 11:48

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

Re: SQL INSERT

von eBayer » Fr, 19.02.2010 10:38

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

Re: SQL INSERT

von vampir666 » Fr, 19.02.2010 10:12

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.

Re: SQL INSERT

von vampir666 » Fr, 19.02.2010 08:04

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

Re: SQL INSERT

von eBayer » Do, 18.02.2010 19:27

Hallo Vampir,
wofür hast Du Deine spitzen Zähne..... beiß Dich durch. :lol:
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

Re: SQL INSERT

von vampir666 » Do, 18.02.2010 16:59

Kommt schon Leute kann mir keiner helfen?

Re: SQL INSERT

von vampir666 » Do, 18.02.2010 14:04

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 :)

Nach oben