Die Programmiersprache Ruby

Blog|

Forum|

Wiki  


Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]

Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Ruby code Zeile in SQL übersetzen (gelöst)
BeitragVerfasst: 23 Jul 2010, 11:47 
Offline
Nuby

Registriert: 23 Jul 2010, 11:39
Beiträge: 2
Hallo zusammen,

Ich möchte gerne folgende Zeile in SQL Code übersetzen und hab so meine Schwierigkeiten:




@bill_export_count = Bus::Case.count(:all, :conditions => [ "bus_id IS NULL AND (result_report_printed_at IS NOT NULL AND result_report_printed_at < now() - INTERVAL ? HOUR ) AND classification_id IS NOT NULL", 156 ])


Gibt für mich folgenden SQL Code:



1
2
3
4
5
6
SELECT *
FROM `cases`
WHERE `bus_id` IS NULL
AND `result_report_printed_at` IS NOT NULL
AND `result_report_printed_at` < "2010-07-23 11:06:54"
AND `classification_id` IS NOT NULL


Ist das so richtig? Und was hat die "156" am schluss des ruby codes zu bedeuten?

Danke für eure Hilfe und LG

MacPit


Zuletzt geändert von macpit am 23 Jul 2010, 17:22, insgesamt 2-mal geändert.

Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Ruby code zeile in SQL übersetzen
BeitragVerfasst: 23 Jul 2010, 12:58 
Offline
Geselle
Benutzeravatar

Registriert: 02 Jun 2008, 22:37
Beiträge: 105
Wohnort: Hamburg
Die 156 wird beim verarbeiten des Query Strings an der stelle eingefügt wo das "?" steht.
Wenn als Condition ein Array übergeben wird, werden alle Fragezeichen im ersten Wert des Arrays nacheinander je mit den weiteren Werten des Arrays ersetzt, die aber vorher noch escaped werden. Von der Idee her funktioniert es ähnlich wie printf()
Das dient dazu, das zusammenbauen von dynamischen Query-Strings und das in dem Zusammenhang nötige escapen der dynamischen Inhalte zu vereinfachen. Da in deinem Beispiel die 156 aber sowieso hardcoded ist, macht es an der Stelle gar nicht unbedingt Sinn.

_________________
UploadService | Blog


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Ruby code zeile in SQL übersetzen
BeitragVerfasst: 23 Jul 2010, 13:00 
Offline
Interpreter

Registriert: 10 Dez 2007, 17:37
Beiträge: 1342


1
2
3
4
5
6
SELECT *
FROM `cases`
WHERE `bus_id` IS NULL
AND `result_report_printed_at` IS NOT NULL
AND `result_report_printed_at` < now() - INTERVAL 156 HOUR
AND `classification_id` IS NOT NULL


Wäre die "wörtliche" Übersetzung. Ob deine DB "INTERVAL 156 HOUR", kann ich nicht sagen.

_________________
Grüße
Jack


Nach oben
 Profil  
 
 Betreff des Beitrags: Re: Ruby code zeile in SQL übersetzen
BeitragVerfasst: 23 Jul 2010, 17:21 
Offline
Nuby

Registriert: 23 Jul 2010, 11:39
Beiträge: 2
Vielen Dank!

Ihr beide habt mir sehr geholfen und mein Problem gelöst :D

LG

Marc


Nach oben
 Profil  
 
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


Du darfst keine neuen Themen in diesem Forum erstellen.
Du darfst keine Antworten zu Themen in diesem Forum erstellen.
Du darfst deine Beiträge in diesem Forum nicht ändern.
Du darfst deine Beiträge in diesem Forum nicht löschen.
Du darfst keine Dateianhänge in diesem Forum erstellen.

Suche nach: