Datenbankabfrage oder Filesystem

I

IH

Gast
Hi,
folgende Frage habe ich mal:
Stellt euch vor ihr müsst an einer Oberfläche bestimmte Dateien anzeigen. Normalerweise liegen diese im Filesystem irgendwo und in der DB ist entsprechend gespeichert "sind da". Es kann aber auch sein, dass die Dateien woanders sind, dann steht in der DB "sind woanders".
Ich muss jetzt überprüfen ob diese Dateien da sind oder nicht und diese Info an die Oberfläche geben.
Würdet ihr jetzt eine Abfrage an die DB machen so nach dem Motto: sindDa? oder würdet ihr im Filesystem den Pfad überprüfen, ob der vorhanden ist? Und wenn ja oder nein, warum?
 
I

irgendjemand

Gast
hmm ..
also wenn in der datenbank dierekte pfade zu irgendwelchen physischen dateien existieren ist es meiner ansicht nach einfacher sich diese komplett zu holen , in eine liste zu werfen ... und dann diese liste durchzugehen und nachzusehen ob die darin aufgeführten files auch wirklich da sind ...

ansonsten sind es ein paar wenige infos ... vor allem was du mit "sindDa" und "sindWoanderst" meinst ...
 
I

IH

Gast
nein nein in der DB sind nicht die ganzen Pfade...

"sindDa" >> würde bedeuten, bedindet sich auf dem Filesystem
"sindWoanders" >> würde bedeuten, wurde ausgelaget und muss noch importiert werden
 
I

irgendjemand

Gast
dann würde mir nur die dierekte ausgabe auf ner GUI einfallen die halt sagt : file x wurde bereits ins system integriert ... file y wurde noch nicht integriert ...
ansonsten ist die umsetzung nur anhand von flags und namen schwierig
 

parabool

Bekanntes Mitglied
kommt auf dem Kontext an.
Wenn der Zustand einer Datei potentiell sehr oft abgefragt werden könnte, bspw. bei
einer Serveranwendung mit mehreren Clients, würde ich die DB abfragen.

Allerding müsste der Zustand "sindDa/woanders" regelmäßig oder sobald sich was ändert (Datei ist weg) in der DB aktualisiert werden.

Andernfalls direkt abfragen.
 
I

IH

Gast
Ich denke, ich prüfe einfach beides. Dann kann ich gleich den Fall abfangen, dass die DB und das Filesystem nicht konsistent sind =).
Vielen Dank für eure Antworten.
 

piahtl

Mitglied
Hi,
habe auch eine kleine Frage zu Datenbanken und Eclipse, ich hoffe mir kann jemand helfen :)
und zwar geht es um eine todolist, wo wenn man auf den eintragenbutton klickt der eingegebene text in die datenbank gespeichert werden soll, und beim showbutton sollte dieser angezeigt werden.


Hier der SourceCode:

package at.htl;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;

public class AndroidDatenbankActivity extends Activity {
SQLiteDatabase db;

/** Called when the activity is first created. */


EditText textwhat,date,time;
Button show, eintragen;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
db=openOrCreateDatabase("mydb", MODE_PRIVATE, null);
String create="create table if not exists todo(whentodo timestamp,"+ "whattodo text)";
db.execSQL(create);
String insert="insert into todo values ('2012-01-10 12:15', 'essen')";
db.execSQL(insert);
Cursor c=db.rawQuery("select * from todo", null);
if(c.moveToFirst()){
do{
String whentodo=c.getString(0);
String whattodo=c.getString(1);
Log.v("dbresult", whentodo+" "+whattodo);

} while(c.moveToNext());
}


textwhat=(EditText)findViewById(R.id.editText1);
date=(EditText)findViewById(R.id.editText2);
time=(EditText)findViewById(R.id.editText3);

eintragen=(Button)findViewById(R.id.button1);
show=(Button)findViewById(R.id.button2);



// text von textfields in tabelle eintragen
// bei showbutton soll

}
}


Bitte um Hilfe und danke im vorhinein :)
 

piahtl

Mitglied
Java:
package at.htl;

import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
import android.widget.EditText;

public class AndroidDatenbankActivity extends Activity {
SQLiteDatabase db;

/** Called when the activity is first created. */


EditText textwhat,date,time;
Button show, eintragen;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
db=openOrCreateDatabase("mydb", MODE_PRIVATE, null);
String create="create table if not exists todo(whentodo timestamp,"+ "whattodo text)";
db.execSQL(create);
String insert="insert into todo values ('2012-01-10 12:15', 'essen')";
db.execSQL(insert);
Cursor c=db.rawQuery("select * from todo", null);
if(c.moveToFirst()){
do{
String whentodo=c.getString(0);
String whattodo=c.getString(1);
Log.v("dbresult", whentodo+" "+whattodo);

} while(c.moveToNext());
}


textwhat=(EditText)findViewById(R.id.editText1);
date=(EditText)findViewById(R.id.editText2);
time=(EditText)findViewById(R.id.editText3);

eintragen=(Button)findViewById(R.id.button1);
show=(Button)findViewById(R.id.button2);



// text von textfields in tabelle eintragen 
// bei showbutton soll 

}
}
 

langhaar!

Bekanntes Mitglied
Abgesehen von der Frage - die nicht in deinem Text existiert und die man sich selber denken muss -fehlt völlig jeglicher Kontext.

Was passiert, was passiert nicht, welche Fehler treten auf etc.
 

Ähnliche Java Themen

Neue Themen


Oben