locked
Binär Feld aus DB lesen RRS feed

  • Frage

  • Hallo Forum,

    ich hole mit der Funktion xx = GETFILE(......) eine beliebige Datei und speichere diese in

    einer MS SQL DB mit

    cMemo = CreateBinary(FileToStr(xx))

    Aber wie kann ich die Binär Datei wieder als Datei auf dem Rechner zurück speichern ?

    Gruß Roland

    Freitag, 23. Juli 2010 15:44

Alle Antworten

  • Hi Roland,
     
    Wo ist das Problem mit
     
    nBytesWritten = StrToFile("MeineTestdatei.xxx", Cursor.cMemo)
     
     

    wOOdy
    Microsoft Visual FoxPro Technology Advisor
    Microsoft "Most Valuable Professional" from 1996 to 2009
    Visit my XING profile! Don't know what XING is?

    *´¨)
    ¸.·´¸.·*´¨) ¸.·*¨)
    (¸.·´. (¸.·` *
    .·`.Visual FoxPro: It's magic !
    (¸.·``··*


     

    Samstag, 24. Juli 2010 07:43
  • Hallo Jürgen,

    das Problem liegt vermutlich in der Abfrage :

    Der Ablauf ist folgender.

    ladeFile = GETFILE(......)             && Beliebiges File  bmp, jpg, doc, xls, vmi, ....

    cMemo = CreateBinary(FileToStr(ladeFile)

    && in MS SQL DB Speichern

    sql_satz = "Insert into Tabelle (lfn, ..., file) VALUES (1,..., ?cMemo)"

    SQLEXEC(HandleSQL,sql_satz)

    && Aus der DB hol ich den Satz wie folgt

    sql_satz = " Select file from Tabelle where (lfn = 1)"

    SQLEXEC(HandleSQL,sql_satz,'FileTabelle')

    Das File / Dokument ligt also in der Tabell "FileTabelle'

    Dein Vorschlag :

    nBytesWritten = StrToFile("MeineTestdatei.xxx", Cursor.cMemo)

    sollte das nicht nBytesWritten = StrToFileCursor.cMemo,"MeineTestdatei.xxx") so sein ?

    Aber es kommt so oder so die Error Meldung "Function argument, type, or count is invalid.

    Hast noch eine Idee ?

    Gruß Roland

    Samstag, 24. Juli 2010 11:21
  • Hallo wOOdy

    brauche Hilfe.

    Komme nicht weiter.

    SQLEXEC(HandleSQL,sql_satz,'FileTabelle')    das Field in der Tabelle "FileTabelle" ist vom Typ G .  Ist das mein Problem ?

    Gruß Roland

     

    Dienstag, 27. Juli 2010 05:52
  • Hi Roland,
     
    >> Ist das mein Problem ?
     
    Ja.
     
     
    Mach mal ne klassische Remoteview drauf, da kannste zum Testen mal den
    Feldtyp des Ergebnis-Cursors ganz simpel über denButton Eigenschaften (auf
    der Feldseite) ändern. Stell da mal auf VarBinary oder ähnliches um. Wenns
    da dann klappt mit dem Wegschreiben, dann machste in deinem Select nen CAST
    auf diesen Feldtyp rein.
     
     
     

    wOOdy
    Microsoft Visual FoxPro Technology Advisor
    Microsoft "Most Valuable Professional" from 1996 to 2009
    Visit my XING profile! Don't know what XING is?

    *´¨)
    ¸.·´¸.·*´¨) ¸.·*¨)
    (¸.·´. (¸.·` *
    .·`.Visual FoxPro: It's magic !
    (¸.·``··*


     

    Dienstag, 27. Juli 2010 07:33
  • Hallo Woody,

    die Eigenschaften für das Feld sind "disabled"

    Datasession -> Properties.  Kannst mir das genauer erklären wie ich an das Feld komme ?

    Gruß Roland

     

    Mittwoch, 28. Juli 2010 17:37
  • Du sollst weg von SPT zu Remoteviews. Und dann im Remoteview den Ergebnisfeldtyp des foxproseitigen Cursor in der Viewdefinition bestimmen. Bei SPT kannst Du nur serverseitig CAST probieren, bist dann aber darauf angewiesen, daß Foxpro den Feldtyp auch kennt oder richtig mappt. Bei Remoteviews und Cursoradaptoren kannst Du da selbst eingreifen.

    Datasession->Properties führt Dich nur bei Tabellen zur Tabellendefinition, bei Views zum Ergebniscursor, Du mußt bei Views schon den Viewdesigner bemühen.

    Tschüß, Olaf.

    Freitag, 13. August 2010 08:36