Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
'Storing' Files in DBF files
Message
From
27/09/2011 22:06:44
 
General information
Forum:
Visual FoxPro
Category:
COM/DCOM and OLE Automation
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows 7
Database:
Visual FoxPro
Miscellaneous
Thread ID:
01524682
Message ID:
01524995
Views:
59
>>>>>You can store blob data in the database (memo (binary)), but the recommended method is to store FileName (if you don't need to store path) and then you can use ShellExecute with default open action to open the file.
>>>>
>>>>Naomi:
>>>>
>>>>Could you give me an example of a SHELLEXECUTE command with, say, the following file name:
>>>>
>>>>c:\bob\documents\DocA.doc
>>>
>>>This worked for me:
>>>
>>>
>>>* Sample use:
>>> MyFile = 'C:\Users\Naomi\Downloads\OVER_Clause_and_Ordered_Calculations.doc'
>>> RunDoc(MyFile)
>>>
>>>FUNCTION RunDoc(tcDocument)
>>>	local lnResult
>>>
>>>	DECLARE INTEGER ShellExecute ;
>>>		IN SHELL32.dll ;
>>>		INTEGER nWinHandle, ;
>>>		STRING cOperation, ;
>>>		STRING cFileName, ;
>>>		STRING cParameters, ;
>>>		STRING cDirectory, ;
>>>		INTEGER nShowWindow
>>>
>>>	**retreive the main VFP window handle (this handle is used by ShellExecute)
>>>
>>>		lnResult=ShellExecute(_screen.hwnd, "Open", tcDocument, "", "c:\temp\", 1)
>>>
>>>	**Error messages if the return value is < 32
>>>	IF lnResult < 32
>>>		DO CASE
>>>		CASE lnResult=2
>>>			Wait wind "Invalid association or URL."
>>>		CASE lnResult=31
>>>			Wait wind "No association."
>>>		CASE lnResult=29
>>>			Wait wind "Can't start application."
>>>		CASE lnResult=30
>>>			Wait wind "Application already open."
>>>		ENDCASE
>>>	ENDIF
>>>ENDFUNC
>>>
>>>
>>>from
>>>Open any document FAQ #8134
>>
>>Naomi:
>>
>>Oops! I forgot to mention that my client is using VFP 5!
>>
>>I got an error after:
>>
>>
>>lnResult=ShellExecute(_screen.hwnd, "Open", tcDocument, "", "c:\temp\", 1)
>>
>>
>>
>>Property HWND not found
>>
>>
>>?????
>>
>>Thanks,
>>
>>Yossi
>
>I updated the original code from the FAQ. Ok, go ahead and use code from the FAQ as it.

OK, we're almost there. It works if the file exists.

1. In VFP 9, it seems that I could just use the _shellexecute foundation class.
2. I do I create an empty WORD (or Excel, or ....) if the file does not exist, since I get a error if I try to open it if it doesn't exist.

i.e.
if !file(myFile)
    Run code that creates it, using the correct version of WORD (or Excel, or ....), 
    based on the provided extension (DOC or DOCX, XLSX etc)
endif

Open myFile with shellexecute
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform