# Offline ein Resultset mit Feldern erstellen



## apfelsine (21. Jul 2004)

Hallo!

hat jemand eine Ahnung, ob man in Java ein 
Resultset offline erstellen kann ohne auf eine Tabelle
zuzugreifen? Und wenn ja, wie geht das?

Ich weiß nur das es in VB geht und wüßte gerne
obs dafür ein äquivalent in Java gibt.
In VB sieht das z.B. so aus:

Dim Rs As Recordset

Set Rs = New Recordset
  Rs.Fields.Append "ID", adInteger
  Rs.Fields.Append "Name", adChar, 32
  Rs.Fields.Append "BirthDay", adDate
  Rs.Open
 For i = 1 To 10000
    Rs.AddNew Array("ID", "Name", "BirthDay"), _
              Array(i, "The Enumerated Name" & i, Now)
  Next i


Weiß jemand was dazu?

danke schonmal 

apfelsine


----------



## bygones (21. Jul 2004)

ResultSet ist ein interface - also kannste du das direkt nicht per se erzeugen... höchstens eine implementierende Klasse (wobei ich nicht weiß ob da eine sichtbar ist).

Die andere Frage ist - wozu ??


----------



## apfelsine (21. Jul 2004)

zu Test-Zwecken


----------



## Niki (21. Jul 2004)

Ich bin mir nicht 100% sicher, aber ich glaub, dass das ResultSet "nur" ein Cursor ist, der in die Datenbank zeigt, und daher selbst keine Objekte beinhaltet, daher wird es nicht möglich sein ein offline Resultset zu erstellen


----------



## apfelsine (21. Jul 2004)

was ist mit dem Arrayobjekt von der SQL Bib.
kann man es da drüber irgendwie reinschustern?
Oder irgendwie anders?


----------



## Guest (21. Jul 2004)

Schau Dir mal sun.jdbc.rowset.CachedRowSet an.
Dies kann auch "offline" verwendet werden.
so sieht's dann ungefähr aus.

```
RowSetMetaDataImpl rsmd = new RowSetMetaDataImpl();
rsmd.setColumnCount(3);
rsmd.setColumnType(1, Types.INTEGER);
rsmd.setColumnType(2, Types.VARCHAR);
rsmd.setColumnType(3, Types.VARCHAR);
rsmd.setColumnName(1, "id");
rsmd.setColumnName(2, "vorname");
rsmd.setColumnName(3, "nachname");
    
CachedRowSet crs = new CachedRowSet(); 
crs.setMetaData(rsmd);
    
crs.moveToInsertRow();
    
crs.updateInt(1, 1);
crs.updateString(2, "Bart");
crs.updateString(2, "Simpson");
    
crs.insertRow();
```
Gruß,
Michael (semi)


----------



## Guest (21. Jul 2004)

Ups, kleiner Fehler

crs.updateString(3, "Simpson");

sollte dort stehen.


----------



## apfelsine (21. Jul 2004)

suuuuuuper
danke schön


----------

