Passing a Pointer of struct to a DLL in LabVIEW

Hi,
I've posted some questions in another Thread, that can be seen here. However I keep having some Problems with a Project I'm working on so I'm gonna post the entire Problem here. Any help will be appreciated.
The Problem is as follows:
I have to write a program which lets me communicate with a CAN Module "tiny_CAN 2 XL". The first step would be to send out a message and display it on an oscilloscope. In order to communicate with the module I have a dll that I can use. Most of the functions work just fine when I add them to my program. Then again most of the functions require call by value integers only. The Problem is that the main function I need, which is called:
int32_t CanTransmit(uint32_t index, struct TCanMsg *msg, int32_t count);
this means I would have to pass a struct TCanMsg variable by reference, so I tried what can be seen in the first attachment.
None of this worked, so I tried something else. The Module came with some sample programs which I compiled. They work just fine, so I tried to model a wrapper.dll after one of the sample programs. So far, the Wrapper.dll looks like this:
// Wrapper.cpp : Definiert die exportierten Funktionen für die DLL-Anwendung.
#include "stdafx.h"
#include "string.h"
#include "conio.h"
#include "windows.h"
#include "C:\Users\Pete\Documents\Studienarbeit tiny_CAN\Dokumente\tiny_can\can_api\lib\can_drv.h"
extern "C" __declspec(dllexport)int PassData(unsigned int Id, unsigned char bytes[8], unsigned int Flags, unsigned int seconds, unsigned int useconds);
struct TCanMsg msg;
BOOL APIENTRY DllMain( HANDLE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
return TRUE;
int PassData(unsigned int Id, unsigned char bytes[8], unsigned int Flags, unsigned int seconds, unsigned int useconds)
int ret = 1;
msg.MsgFlags = Flags;
msg.Id = Id;
memcpy(msg.MsgData, bytes, 8);
return CanTransmit(0, &msg, 1);
But when I try buliding this I get an Error:
Nicht aufgelöstes externes Symbol "_CanTransmit"
I don't know how exactly to translate this, but it basically means, that the program doesn't find the Function I am Calling. I cannot figure out why it can't, as I included all the same header files as in the sample program. 
That's about where I am stuck right now. Thank you for your input on this topic.
Attachments:
TinyCanAPI.pdf ‏382 KB
tiny_CAN.zip ‏124 KB

The error states, that the IDE you are using cannot resolve a symbol called "_CanTransmit" which i assume should be defined in the can_drv.h file.
I would think that the error disappears if you rewrite the line in PassData as following:
return 0; //CanTransmit(0, &msg, 1)
If this is the case, the problem you are facing is a mislink or missing link to the function CanTransmit. Are you sure, that there are no further headers you have to include?
Norbert
PS: Please note that using absolute paths to modules in the code is always a bad idea....
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it.

Similar Messages

  • How do you pass an array of characters using the DLL functions

    I have exported C code into my DLL and I want to know how to pass an array of characters using LabVIEW.

    Mont;
    If you want to pass a string from LabVIEW to your dll, and you do NOT change size of the string, you can use a C String pointer (CStr), which is equivalent to (unsigned) char *.
    If you do modify size of the string, pass string as a LabVIEW structure (LStrHandle).
    The example "Passing a Variety of Data Types from DLL to LabVIEW" is an excellent starting point. Also make sure you check the manual "Using External Code in LabVIEW".
    Regards;
    Enrique
    www.vartortech.com

  • How do I pass an array of structs to a C function using the dll flexible prototype adapter?

    What I want to do is pass into a C dll function a variably sized Array of structs of type TPS_Data. My Code compiles but when I run it in TestStand, I get an error -17001; Program Error. "Cannot allocate 0 size buffer Error in parameter 2, 'OpenFrdData'."
    I've allocated the Array of structs, and all of the information is there before I call my function, so is it my prototype? Or am I asking too much of the DLL Flexible Prototype Adapter to pass an Array of Structs?
    I can pass in a single struct of type TPS_Data and that works, but not an array.
    Here's the relevent code:
    typedef struct TPS_DATA
    char Report_Number[256];
    char System_Name[256];
    char Open_Date[256];
    char UUT_Part_Number[256];
    char UUT_Serial_Number[256];
    char UUT_Name[256];
    char Open_Employee_Name[256];
    char Open_Employee_Number[256];
    char Close_Employee_Name[256];
    char Close_Employee_Number[256];
    char Close_Date[256];
    } TPS_Data;
    typedef struct TPS_DATA_ARRAY
    TPS_Data DataRecord;
    } TPS_DataArray;
    long __declspec(dllexport) __stdcall OpenDialog (CAObjHandle Context, TPS_DataArray *TpsData[], const char *psFaultStr, char *sComments, const int nCount);

    OK,
    I can pass the data to the DLL function, using the following types:
    typedef struct StringArrayType
    char string[10][256];
    } StringArray;
    typedef struct MultiStringArrayType
    StringArray Record[10];
    } MultiStringArray;
    void __declspec(dllexport) __stdcall ATP_TestStructPassing(StringArray Strings)
    return;
    void __declspec(dllexport) __stdcall ATP_TestMultiStructPassing(MultiStringArray *Strings)
    return;
    But when the MultiStruct function Exits, TestStand reports an Error:
    -17501 "Unexpected Operating System Error" Source: 'TSAPI'
    There doesn't seem to be a way around this, and once the error occurs, I have to force quit TestStand. I've included the sequence file, and the dll code can be compiled from the fun
    ctions shown above.
    Any thoughts on how to get around this error would be greatly appreciated.
    Attachments:
    StructArrayPassing.seq ‏16 KB

  • Pass a "pointer type" into DLL

    Hi! I am planning to do this thing:
      A. Create an array
      B. Pass its pointer into a sub-VI
      C. In this sub-VI, use this pointer in a function of a DLL library
      D. The function of the DLL library will write something into place defined by the pointer
    My aim is to read back the result by viewing that array at step A.
    My question is..
    1. how to pass a pointer via VIs? Use Call be reference node in the mother VI, what about the daughter VI then?
    2. if I am passing a pointer into the DLL, should I choose "value" or "pointer to value" in the call library node?
    Raymond

    duplicate post, continue here!
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • How can I calling LabView DLL within LabView and pass similar Data Types?

    I am trying to use an Instrument Driver, which is created in LabView6.1 as a DLL. At this point I have only LabView to test this DLL. I was wondering, is there easy way to find out what sort of Parameter or Data Type I should be using.
    How can I pass the following data with in LabView:
    LVRefnum as Type?
    LVBoolean as Type?
    TD1 (a structure) as Type?
    It is funny to see that I am able to create a DLL in labview but having trouble calling it within LabView. I thought, it would be easier to test the DLL within the same environment.
    Basically, I am more worried about the VISA calls that are used in the driver to communicate with instrument. Because, there is no link to �VISA32.dll� in
    the header file, is that handled by the LV Run-time engine? I guess more details are needed on using the LabView DLL within LabView from National Instrument Technical Support.
    Attachments:
    RL5000.h ‏1 KB

    A LVRefNum seems to be an unsigned long data type (32bit). You can cast it
    in LV then use that as a parameter to call the DLL. (an Occurrence type
    seems to be a Ulong32)
    When you created the DLL what was the resulting type for the LVRefNum?
    Happy Holidays
    "Enrique" wrote in message
    news:[email protected]..
    > I see...
    >
    > After doing some research, it seems to me that there is no easy way to
    > find out the type of data, other than looking at the header file and
    > have documents like Using External Code in LabVIEW handy. The
    > following information is from that document:
    >
    > LVBoolean is an 8-bit integer. 1 if TRUE, 0 if FALSE.
    >
    > LabVIEW specifies file refnums using t
    he LVRefNum data type, the
    > exact structure of which is private to the file manager. To pass
    > references to open files into or out of a CIN, convert file refnums to
    > file descriptors, and convert file descriptors to file refnums using
    > the functions described in Chapter 6, Function Descriptions.
    >
    > I know you are creating a dll in LabVIEW, but I am pretty sure the
    > information applies as well and is useful. For your dll this can be
    > interpreted that, rather than passing a LVRefnum, try passing the file
    > descriptor.
    >
    > From the header file, is can be deduced that TD1 is a cluster in
    > LabVIEW.
    >
    > You are right in saying that "more details are needed on using the
    > LabView DLL within LabView from National Instrument Technical
    > Support.".
    >
    > Enrique

  • Creating a DLL in LabVIEW containing a function using pointer to pointer

    Hi!
    I´m facing the problem to create a DLL from LabVIEW containing the following C-function:
    functionF(structS** arrayA) ,
    where:
    structS is a struct of various data-types (e.g. int)
    arrayA is an C-array of structS
    How can this be done? Any ideas?
    Thank you in advance for your support

    This cannot be done in LabVIEW. LV doesn't have the data type "Pointer" as C has.
    The only workaround I can think of is to use an array of strings in LV and in the interface define the parameter as "by reference". In LV you have to typecast the wire with the string to a cluster withthe layout of structS.
    As far as I know an array of strings is represented as an array of pointer to strings. This is because strings are variable in length and therefore LV uses this method storing the pointers to the strings in the array and not the elements as usual.
    You have to read the document about memory and data types of LabVIEW. In elder versions this was in the LabVIEW Bookshelf but I haven't found it in short in the newer version.
    Waldemar
    Using 7.1.1, 8.5.1, 8.6.1, 2009 on XP and RT
    Don't forget to give Kudos to good answers and/or questions

  • Pass a value to a dll under labview

    I have to build a dll under cvi and use it under labview. my problem is to pass a value to this dll from labview.
    But when I use it, labview return an error code and close the software...
    I can return value from the dll to labwiew but not the contrary. can you help me please.
    I am a beginner and I am sorry for my english..."
    don't think it's a calling convention beceause When I use the box "call a dll" in labview and I select my dll, I can see all functions I have create in the dll (just the extern functions). for the datatype, I use int or unsigned int and sometimes char. and I can receive this value in labwiew...
    but for the pointer that's certainly my problem
    this is the sourcecode of my function. I drive a digital
    to analogue converter and I want to select the exit (There is 4 exit 0x00,01,10,11 )and a voltage (0 to 255 in décimal):
    void __stdcall dac_sortie_tension (int sortie, int tension)
    outp(LPT1+0x000,4); /* not important*/
    outp(LPT1+0x400,sortie);
    outp(LPT1+0x000,2); /* ecriture de l'adresse2*/
    outp(LPT1+0x400,0x00); /* not important*/
    outp(LPT1+0x000,3); /* not important*/
    outp(LPT1+0x400,tension);/*write voltage*/
    if I use a constant to "sortie" & "tension" it's OK...
    I try to use this:
    void __stdcall dac_sortie_tension (int *sortie, int *tension)
    but it's the same..."
    when I select the fonction in labview, I can see them
    but there isn't argument' ("sortie" & "tension") and I have a void like this:
    void fonction (void)
    what is the problem..
    I can give argument to the function but there aren't used..."

    /*draven*/;
    You need to configure the function manually. Once you select the dll and select the function, select the button Add a Parameter After. You can change the name of the parameter to sortie, keep the Data Type as long and then change the Pass field to Pointer to Value. Click again the Add a Parameter After button and do the same for the your variable "tension".
    For more information about calling external code in LabVIEW, refer to the following document (which should be also included with LabVIEW):
    Using External Code in LabVIEW
    Instructions on-line are here:
    An Overview of Accessing DLLs or Shared Libraries from LabVIEW
    Check also examples here:
    Communicating with External Applications
    Regards;
    Enrique Vargas
    www.visecurity.com
    www.vartortech.com

  • How do I create a 1d array that takes a single calculation and insert the result into the first row and then the next calculation the next time the loop passes that point and puts the results in thsecond row and so on until the loop is exited.

    The attached file is work inprogress, with some dummy data sp that I can test it out without having to connect to equipment.
    The second tab is the one that I am having the problem with. the output array from the replace element appears to be starting at the index position of 1 rather than 0 but that is ok it is still show that the new data is placed in incrementing element locations. However the main array that I am trying to build that is suppose to take each new calculation and place it in the next index(row) does not ap
    pear to be working or at least I am not getting any indication on the inidcator.
    Basically what I am attempting to do is is gather some pulses from adevice for a minute, place the results for a calculation, so that it displays then do the same again the next minute, but put these result in the next row and so on until the specifiied time has expired and the loop exits. I need to have all results displayed and keep building the array(display until, the end of the test)Eventually I will have to include a min max section that displays the min and max values calculated, but that should be easy with the min max function.Actually I thought this should have been easy but, I gues I can not see the forest through the trees. Can any one help to slear this up for me.
    Attachments:
    regulation_tester_7_loops.vi ‏244 KB

    I didn't really have time to dig in and understand your program in depth,
    but I have a few tips for you that might things a bit easier:
    - You use local variables excessively which really complicates things. Try
    not to use them and it will make your life easier.
    - If you flowchart the design (very similar to a dataflow diagram, keep in
    mind!) you want to gather data, calculate a value from that data, store the
    calculation in an array, and loop while the time is in a certain range. So
    theres really not much need for a sequence as long as you get rid of the
    local variables (sequences also complicate things)
    - You loop again if timepassed+1 is still less than some constant. Rather
    than messing with locals it seems so much easier to use a shiftregister (if
    absolutely necessary) or in this case base it upon the number of iterations
    of the loop. In this case it looks like "time passed" is the same thing as
    the number of loop iterations, but I didn't check closely. There's an i
    terminal in your whileloop to read for the number of iterations.
    - After having simplified your design by eliminating unnecessary sequence
    and local variables, you should be able to draw out the labview diagram.
    Don't try to use the "insert into array" vis since theres no need. Each
    iteration of your loop calculates a number which goes into the next position
    of the array right? Pass your result outside the loop, and enable indexing
    on the terminal so Labview automatically generates the array for you. If
    your calculation is a function of previous data, then use a shift register
    to keep previous values around.
    I wish you luck. Post again if you have any questions. Without a more
    detailed understanding of your task at hand it's kind of hard to post actual
    code suggestions for you.
    -joey
    "nelsons" wrote in message
    news:[email protected]...
    > how do I create a 1d array that takes a single calculation and insert
    > the result into the first row and then the next calculation the next
    > time the loop passes that point and puts the results in thsecond row
    > and so on until the loop is exited.
    >
    > The attached file is work inprogress, with some dummy data sp that I
    > can test it out without having to connect to equipment.
    > The second tab is the one that I am having the problem with. the
    > output array from the replace element appears to be starting at the
    > index position of 1 rather than 0 but that is ok it is still show that
    > the new data is placed in incrementing element locations. However the
    > main array that I am trying to build that is suppose to take each new
    > calculation and place it in the next index(row) does not appear to be
    > working or at least I am not getting any indication on the inidcator.
    >
    > Basically what I am attempting to do is is gather some pulses from
    > adevice for a minute, place the results for a calculation, so that it
    > displays then do the same again the next minute, but put these result
    > in the next row and so on until the specifiied time has expired and
    > the loop exits. I need to have all results displayed and keep building
    > the array(display until, the end of the test)Eventually I will have to
    > include a min max section that displays the min and max values
    > calculated, but that should be easy with the min max function.Actually
    > I thought this should have been easy but, I gues I can not see the
    > forest through the trees. Can any one help to slear this up for me.

  • Forcing Single Pass entry point

    Hi all
    I have a sequence based on the sequential model that I only ever want to enter as single pass. I am driving myself slight crazy as I keep clicking “Test UUT(s)” rather than “single pass”. Is there a call back or expression I can add that will force the sequence to run as single pass regardless of which button I click?
    Many Thanks              
    Dave B
    P.S Happy new Year
    Solved!
    Go to Solution.

    Because the client and model are "decoupled" and the client technically doesn't get called until later in the execution this is a tricky one.
    Several options:
    Customize the UI to only allow the Execution Entry point button to be linked to the Single Pass entry point
    In the Sequence Editor fix your toolbar to only show the Single Pass entry button
    This one is kind of a hack:  override the Process Setup callback and if the entry point was Test UUTs then kill the thread and start a new one using the Single Pass entry point
    Remove Test UUTs from the process model.  Or change it to a configuration entry point temporarily.
    Hope this helps,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Resizing an array of struct inside a DLL using the memory manager

    Hi all,
    I dug deep inside the boards, but wasn't able to find a solution for my problem.
    I'm building a dll, which does some imageprocessing and should return an array of structs to labview, with one struct for every element in the image.
    As I don't know the number of elements beforehand and the limit of the number is numbers of magnitude larger then the expected one, I don't want to allocate such a huge chunk of memory prior to the dll call in labview.
    In a former version I used a 2d array for the elements, where each row holds the values of every element. Here I used the NumericArrayResize-function, which worked quite well. But I have to add more sub-processes and using structs (or clusters in labview) appears to be more usefull and cleaner for me, in addition I had to cast some of the elements back and foreward a few times.
    So one element-struct should hold 2 singles and 1 uint32. My question is now, how can I resize this array of struct with memory manager functions as the NumericArrayResize-functions does not suit this purpose?
    (Accessing a given array of structs inside the DLL and after that reading the changed values in Labview is surprisingly easy )
    Thanks in advance
    Solved!
    Go to Solution.

    Well, I was able to solve it myself. I found this thread, where the first post of rolfk made me thinking. It appeared to me, that the numericarrayresize-function behaves very similar to the realloc-function of c. So I used the type unsigned int 8 (which is just one byte) and multiplied it by the number of bytes used by one struct, in my case 12 bytes (4+4+4) and then multiplied it by the number of structs (elements in the image) i have. Luckily it worked and the memory block was resized exactly as I wanted it to be. Important to note: do not forget to adjust the size element of the handle, otherwise Labview does not know about the changed size.

  • Apple sync notyifier exe entery point not founf in libxm12.dll

    I receve this massage on start up. (apple sync notyifier exe entery point not founf in libxm12.dll) I 've removed and reinstalled itunes and I still get the error massage. Can any one help.

    If you uninstall your MobileMe control panel, does that clear up the error message?

  • Firefox "The procedure entry point PK11_Derive With Template nss3.dll" wont start warning message?

    Firefox will not start warning message "The procedure entry point PK11_Derive With Template nss3.dll" after IE update and zeroing cookies.

    Do a clean reinstall and download a fresh Firefox copy from http://www.mozilla.com/firefox/all.html and save the file to the desktop.
    Uninstall your current Firefox version and remove the Firefox program folder before installing that copy of the Firefox installer.
    It is important to delete the Firefox program folder to remove all the files and make sure that there are no problems with files that were leftover after uninstalling.
    You can skip the step to create a new profile, that is not necessary for this issue.
    See http://kb.mozillazine.org/Standard_diagnostic_-_Firefox#Clean_reinstall

  • How can i send pointer to struct from java to c?

    Hi
    my native function expect to get pointer to struct as follow:
    int sendTo(const struct sockaddr_in *lpTo)
    when the c function prototype is as follow:
    JNIEXPORT jint JNICALL Java_myProg_sr_SendTo(JNIEnv env, jobject sockaddr_in lpTo)
    my question is :
    should i send the native function jobject as i did and then create a new instance of (struct sockaddr_in *) in the native function and that initialize all struct fields from the jobject (java object wrapper) fileds ,
    or
    should i just send jlong value that i stored in my java program and that points to the (struct sockaddr_in *) address after casting to this type???

    You are going to need to create a new instance of sockaddr_in and populate it's fields from the Java object. This is the safest thing to do. I haven't seen anywhere in the documentation that you can simply cast objects to C structs, only primitive values.
    For more info on populating fields, try:
    http://java.sun.com/docs/books/tutorial/native1.1/implementing/field.html
    http://java.sun.com/products/jdk/1.1/docs/guide/jni/spec/functions.doc.html#16536

  • Error calling DLL in LabVIEW, but works in VC

    I compiled a DLL from Matlab, and then compiled a wrapper DLL in VC++. I tested the wrapper DLL in VC++, and it works fine, generating the correct output as in Matlab. 
    But when I call the wrapper DLL in LabVIEW, the first thing I noticed was that it only ran once. The second time I ran the VI, it returns an error. And the output is always a single number instead of an array when it runs. 
    I followed the examples how to create a wrapper DLL for Matlab compiled code. One of the examples said three functions Initialize, run and terminate should be implemented so that the DLL function can run continuously. I did all those, but it still does not work. 
    Here is the test code in C++. I explicitely loaded the DLL and ran the functions. It worked fine. Why the VI in LabVIEW does not do the same thing?
    // contourWrapper3.cpp : Defines the entry point for the console application.
    #include "stdafx.h"
    #include <Windows.h>
    #include <iostream>
    typedef int (*InitFunc)();
    typedef void (*TerminateFunc)();
    typedef void (*contourFunc)(double*,double*,int,int,double);
    int _tmain(int argc, _TCHAR* argv[])
    InitFunc _InitFunc;
    TerminateFunc _TerminateFunc;
    contourFunc _contour;
    HINSTANCE hInstLibrary = LoadLibrary("contourcWrapper.dll");
    if(hInstLibrary)
    _InitFunc=(InitFunc)GetProcAddress(hInstLibrary,"c​ontourcInit");
    _TerminateFunc=(TerminateFunc)GetProcAddress(hInst​Library,"contourcTerminate");
    _contour=(contourFunc)GetProcAddress(hInstLibrary,​"contourcGenerate");
    if(_InitFunc)
    _InitFunc();
    if(_contour)
    double image2DArray[] = {1,2,6,4,6,8,0,5,1,3,5,4,7,8,8,9,10,0};
    int width = 3;
    int height = 6;
    double c[sizeof image2DArray] = {0};
    _contour(c, image2DArray, width, height, 0.6);
    for (int i=0; i<width*height; ++i)
    std::cout << c[i] << std::endl;
    _TerminateFunc();
    else
    std::cerr << "Could not initialize libcontour properly."
    << std::endl;
    return 0;
     This is the output window of the above C tester code. It displays the correct output of array. 
    And this is the VI that does not work. 
    In the attached files, 'libcontour.zip' contains the matlab-generated dll and wrapper dll. 
    Attachments:
    contourcWrapper_test.vi ‏12 KB
    libcontour.zip ‏50 KB

    But LabVIEW does.  The declarations (in C) for different types of arrays are not the same.  I think you are passing extranious data to the DLL which is causing the issue.
    I will defer to your expertise however.  Over the years my knowledge in this area has waned.  Perhaps you are correct (in which case I am not sure what is wrong).
    Examples:
    typedef struct
        int dimSize;
        double data[1];
      } t_LvArrayDbl1D, *p_LvArrayDbl1D, **h_LvArrayDbl1D;
    typedef struct
        int dimSize[2];
        double data[1];
      } t_LvArrayDbl2D, *p_LvArrayDbl2D, **h_LvArrayDbl2D;

  • Creating a DLL in labview that interacts with a DLL in C++

    I’m creating a DLL in LabView that will interact with a DLL created in C++. I don’t have control in the C++ DLL.
    Both DLLs would pass a big amount of data as strings between them, for that it is necessary to allocate memory to store information in one dll and read it in the other and viceversa. The first time I will call the other DLL,  with this function :
    long in texts ( unsigned char *name, void *id)
    I would pass them a pointer pointer to an ASCII string  (name) and a pointer to an unspecific data structure (id). The id would then be passed to me by his DLL whenever they use one of the functions implemented on my dll.
    What I don’t know is what to pass as a void*id? What are they expecting? A number? A cluster?
    The other thing I don’t know is how to allocate memory in labview and write there information, such as a string, and then tell the other DLL to look for the information at that DLL, and viceversa. I hope I made my self clear, hope somebody can help me, and please indicate me if you need more information

    Hello Osvaldo,
    I analysed the updated tutorial you sent me, but the thing is that it doen't show how to create the DLL in LV 8.6 but only show how to accessing the DLL from VB6. My problem is really HOW TO CREATE THE DLL IN LV8.6. In the link http://zone.ni.com/devzone/cda/tut/p/id/3063 there is detailed information about how to do this in LV6.x, the problem is that I don't find the path Tools»Build Application or Shared Library (DLL) in LV8.6, I think the procedure in LV8.6 is a little bit different. Don´t you have an updated tutorial on how to build a dll in LV8.6?How could you help me?
    Kind regards.
    João Júnior

Maybe you are looking for

  • MM - PO's account charging

    Good morning MM consultants. I have a SOS query for you It happens that I have a purchase order, created with many positions and charged to an account 'X'. This PO had some invoice receptions registered with trx MIRO in all positions, then, all posit

  • Create XML file from SQL trigger

    I have to create a XML file of a record when a certain column of table Absences is updated. I have the following bcp command in the (after update) trigger :     bcp "select absences.HID, absences.Amount,absences.Itemcode,absences.Itemcount, absences.

  • Downloaded Brushes are not Saving in Ps E 10?

    I recently got Ps Elements 10 with my Bamboo Capture. Today I tried to download a brush from dA and I worked till I switched into one of the brushes that comes with the program. It just vanished. The I watched a couple tutorials and it said to go to

  • Need to check all custom programs with open data set

    Hi all , i have  to list all custom programs and f.m.  which are using ftp server (file share). Is there any way to list that programs

  • Can i add more fields and change colours?/

    Hi this is probably a very simple question, with iCal at the moment i have three fields for appointments which are home/work/calendar. I can't find a way of adding more fields or changing the colours. Can it be done???