C library function call - Unavailable Type for one of the parameters in the Function Prototype.

Hi,
I'm doing a job that has been already done by some others: implementing a LabVIEW SQLite Wrapper, I know how to do that with .NET alas I would like to do that in C, mostly for performance purposes and my poor pointer knowledge is kinda make me stuck.
A couple of informations are kindly provided here:
http://www.sqlite.org
http://www.sqlite.org/cintro.html
What I would like to do, is just to open a connection to a SQLite Database (if not existing, the SQLite engine will create the embedded Database and the related file to save the data and everything). The function to perform the operation is given in page below:
http://www.sqlite.org/c3ref/open.html
It seems pretty simple:
int sqlite3_open(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb /* OUT: SQLite db handle */
int sqlite3_open16(
const void *filename, /* Database filename (UTF-16) */
sqlite3 **ppDb /* OUT: SQLite db handle */
int sqlite3_open_v2(
const char *filename, /* Database filename (UTF-8) */
sqlite3 **ppDb, /* OUT: SQLite db handle */
int flags, /* Flags */
const char *zVfs /* Name of VFS module to use */
However I'm struggling a bit about the following type:
sqlite3 **ppDb /* OUT: SQLite db handle */
And I'm not really sure about which type to use when I'm calling this function from LabVIEW
Any idea, I guess it's real easy, but I'm not really used to have a type which is I suppose the DataInstance but as it's not clearly explicted in the LabVIEW interpreted C Library Function prototype (InstanceDataType makes sense but not sure though) I'm not really sure what I'm showing in the attached screenshot is valid or not.
My VI seems to work like a charm, but don't really know if I'm doing something wrong.
Another prototype that I have no idea about the proper LabVIEW call is the close function:
http://www.sqlite.org/c3ref/close.html
Let me get this traight, usually a parameter has a name, right? but seems that nope:
int sqlite3_close(sqlite3*);
int sqlite3_close_v2(sqlite3*);
So also no idea about the parameter setting for this one... has to be considered as the self instance like the one calling this function is this... but I'm not passing any object?
Really confusing...
sqlite3*
I might sound really silly, but if anybody could point me some directions, I would be really grateful for that.
Thanks
 

Ehouarn wrote:
However I'm struggling a bit about the following type:
sqlite3 **ppDb /* OUT: SQLite db handle */
And I'm not really sure about which type to use when I'm calling this function from LabVIEW
This parameter should be a pointer-sized integer, passed by pointer. Doesn't matter if it's signed or unsigned. The SQLite library will allocate memory for you, then put a pointer to that memory location into the pointer-sized integer that you pass in.
As for the close function, you should pass that same pointer-sized integer, but this time pass it by value (because it's referenced with a single *, not two). There's nothing wrong with the documentation omitting the parameter name. For the purposes of a function prototype, the parameter name is unimportant, since all you need to know is the type of the data. How the function chooses to refer to that parameter internally is irrelevant.

Similar Messages

  • How the system determines the Requirement type  for one sales order

    Hi,
    SAP-SD Gurus,
    Please tell me how the system determines the Requirement type  for one sales order?
    Thanks & Regards,
    Sreenivas.P

    Hi,
    System follows some search criterial to determine the requirement type
    1. First, an attempt is made to find a requirements type using the strategy group in the material master.
    2. If the strategy group has not been maintained, the system will determine it using the MRP group.
    3. If the MRP group has not been defined, the system uses the material type instead of the MRP group when accessing the corresponding control tables.
    4. If no requirements type is found here, the system assumes a special rule and attempts to find a requirements type with the aid of the item category and the MRP type.
    5. If this is not possible, a last attempt is made to find a requirements type with the item category only.
    6. If the last attempt fails, the system declares the transaction as not relevant for the availability check or transfer of requirements.
    Please check the path
    SPRO->SALES & DISTRIBUTIONS->BASIC FUNCTIONS>AVAILABILITY CHECK AND TOR->TRANSFER OF REQUIREMENTS--->DETERMINATION OF REQUIREMENT TYPE USING TRANSACTION.
    Hope it will clarify
    regards,
    santosh

  • When I try to open live hot mail I get this message:The Windows Live Network is unavailable from this site for one of the following reasons:

    When I try to open live hot mail I get this message: The Windows Live Network is unavailable from this site for one of the following reasons:
    * This site may be experiencing a problem
    * The site may not be a member of the Windows Live Network
    You can:
    * You can sign in or sign up at other sites on the Windows Live Network, or try again later at this site.
    However, when I open hot mail in IE it opens just fine. Tried changing the password as suggested but it did not help in Firefox.

    Clear the cache and the cookies from sites that cause problems.
    * "Clear the Cache": Tools > Options > Advanced > Network > Offline Storage (Cache): "Clear Now"
    * "Remove the Cookies" from sites causing problems: Tools > Options > Privacy > Cookies: "Show Cookies"

  • TS3510 I have 3 different apple devices using the same Apple ID and would like to use FaceTime to call from one device to the other.  Do I need a different Apple ID for one of the devices in order to do that?

    I have 3 different apple devices (iPod Touch, iPad and MacBook Pro) using the same Apple ID and would like to use FaceTime to call from one device to the other.  Do I need a different Apple ID for one of the devices in order to do that?

    I found this on a related question in the Community:
    Yes you can do it. I do it with 4 different devices all using the same Apple ID.
    You need to associate different email addresses for each device in order to use those email addresses as the "contact at" email address. The reason the calls are dropping on you now is that what you are trying to do is like calling yourself on your own phone.
    You can also create new iCloud accounts on each device simply to use for FaceTime, but I'm guessing that the users of the other two devices have their own email addresses which will make this work for you quite easily.
    Take a look at this for more information.
    The seems to go against what Gail said and the issue you raised about buying dup apps was my first concern.  If this other post is correct, how to I set a different "contact at" in the iPod Touch?
    Goose

  • How can I get a reference to all controls on a front panel of one type )for example of the type Text Ring?

    I'd like to set the strings[] property of all the Text Ring controls on a front panel at once without creating a property node for every text ring. How can i do that?

    > How can I get a reference to all controls on a front panel of one type
    > )for example of the type Text Ring?
    >
    > I'd like to set the strings[] property of all the Text Ring controls
    > on a front panel at once without creating a property node for every
    > text ring. How can i do that?
    This is likely more complicated than making property nodes for each
    ring, but you can do it. Make a subVI that takes in a panel reference,
    reads the array of control references, loops through them looking for
    rings, and modifying the Strings[] property on each ring.
    The part of this that will probably be the least obvious, when you
    have an array of control references there are two ways to find out
    if an element is a ring. You can read the classID and compare it
    to the cla
    ssID of a true ring control. An alternative is to cast
    the control reference to a ring control using a Cast to more specific
    node and wire the error out to a case structure. The error case is
    where the objects that aren't rings will go. The success case case
    where you will have a valid ring refnum that you can use to modify
    the strings.
    Greg McKaskle

  • I am interested in an app called tango remote. It needs two ios devices. I have an 8GB ipod touch. Is this sufficient for one of the devices?

    Tango Remote Control Music Player HD
    I am interested in an app called tango remote. It needs two ios devices. I have an 8GB ipod touch. Is this sufficient for one of the devices?

    An iPod touch is an iOS device.
    Why not contact the developer of the app?

  • How to add dynamic data type as one of the terminals of a Custom VI

    Hello,
    Can anybody tell me if it's possible and how to add a dynamic data type as one of the terminals of a sub-VI? I would like to have a terminal that I can connect signal from DAQmx to my sub-VI.  Thanks.

    Here is one of the coolest things about LV, and one of its major advantages over languages like VB - it has automatic memory management and it compiles whenever you make a change. This allows you to be very free in the way you handle data and change your code. In this case, you should note the small gray dot that appears when you wire the dynamic data into the Array of Waveforms input. This gray dot means that LV coerces the source data type (DDT, in this case) to the target data type (Array of waveforms). If it wouldn't match, you would get a broken wire, the VI couldn't run, and if you hover over the wire or press the broken run button you would get an exact description of the error. Cool, eh?
    This can also be seen in other things. For example, you can change an array's data type or number of dimensions by simply doing it. This will automatically be reflected anywhere the array is called in the program, and if anything won't match, the VI will be broken. If you change the # of dimensions of an array, any array function which that array is wired to will adapt. This allows you to be very safe in the way you write code, because you have LV watching all that annoying stuff for you. You don't have to worry about misspelling a variable here (for the most part).
    One important point about coercion - it does take processor power. This will usually only be evident in large arrays or loops, but it is an important point. Another thing is that coercing numeric types can cause you to lose data - coercing a DBL to a U16, for example, will cause you to lose all the fractional data.
    To learn more about LabVIEW, I suggest you try searching this site and google for LabVIEW tutorials. Here and here are a couple you can start with. You can also contact your local NI office and join one of their courses.
    In addition, I suggest you read the LabVIEW style guide and the LabVIEW user manual (Help>>Search the LabVIEW Bookshelf).
    Try to take over the world!

  • Crashes when running applications from network share - "Windows cannot access the file for one of the following reasons"

    Hi,
    starting a couple of weeks ago, we get the following error(s) when running applications from a network share. We don't know what causes this, we are not aware of any major changes in our network infrastructure or client/Server configuration. We did upgrade
    a lot of machines to Windows 8, but the issue also occurs on older Win7 computers.
    We figured out a workaround though: The applications run fine when launching from a FQDN share (like
    \\share.domain.Company.com) and only cause problems when running from
    \\share directly. They have worked fine for years without FQDN though.
    Any ideas?
    Error Details (the Kind of error differs greatly):
    # 1 #
    Log Name: Application
    Source: Application Error
    Date: ...
    Event ID: 1005
    Task Category: (100)
    Level: Error
    Keywords: Classic
    User: N/A
    Computer: vmDEV
    Description:
    Windows cannot access the file for one of the following reasons: there is a problem with the network connection, the disk that the file is stored on, or the storage drivers installed on this computer; or the disk is missing. Windows closed the program XYZ
    because of this error.
    Program: XYZ
    File:
    The error value is listed in the Additional Data section.
    User Action
    1. Open the file again. This situation might be a temporary problem that corrects itself when the program runs again.
    2. If the file still cannot be accessed and
    - It is on the network, your network administrator should verify that there is not a problem with the network and that the server can be contacted.
    - It is on a removable disk, for example, a floppy disk or CD-ROM, verify that the disk is fully inserted into the computer.
    3. Check and repair the file system by running CHKDSK. To run CHKDSK, click Start, click Run, type CMD, and then click OK. At the command prompt, type CHKDSK /F, and then press ENTER.
    4. If the problem persists, restore the file from a backup copy.
    5. Determine whether other files on the same disk can be opened. If not, the disk might be damaged. If it is a hard disk, contact your administrator or computer hardware vendor for further assistance.
    Additional data
    Error value: C000020C [ also seen with code C00000C4]
    #2 (German error Messages from now on, we only use German OSes, the above english one is translated based on similar error Messages I found on the web) #
    Name der fehlerhaften Anwendung: XYZ.exe, Version: 2015.0.496.5054, Zeitstempel: 0x54ea67c3
    Name des fehlerhaften Moduls: clr.dll, Version: 4.0.30319.34014, Zeitstempel: 0x52e0b784
    Ausnahmecode: 0xc0000006
    Fehleroffset: 0x00026549
    ID des fehlerhaften Prozesses: 0x13ac
    Startzeit der fehlerhaften Anwendung: 0x01d055a854d36445
    Pfad der fehlerhaften Anwendung: \\share\application.exe
    Pfad des fehlerhaften Moduls: C:\Windows\Microsoft.NET\Framework\v4.0.30319\clr.dll
    Berichtskennung: 949ea933-c19b-11e4-bf04-78542e186754
    Vollständiger Name des fehlerhaften Pakets:
    Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
    Anwendung: XYZ.exe
    Frameworkversion: v4.0.30319
    Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
    Ausnahmeinformationen: Ausnahmecode c0000006, Ausnahmeadresse 720B6549
    Stapel:
    # 3 #
    Anwendung: WpfApp.exe
    Frameworkversion: v4.0.30319
    Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
    Ausnahmeinformationen: System.Runtime.InteropServices.SEHException
    Stapel:
       bei SP.Forms.AutoCompleteSelectionBase.OnEnter(System.EventArgs)
       bei System.Windows.Forms.Control.NotifyEnter()
       bei System.Windows.Forms.ContainerControl.UpdateFocusedControl()
    # 4 #
    Anwendung: WpfApp.exe
    Frameworkversion: v4.0.30319
    Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
    Ausnahmeinformationen: System.Runtime.InteropServices.SEHException
    Stapel:
       bei System.IO.UnmanagedMemoryStream.ReadByte()
       bei System.IO.BinaryReader.ReadByte()
       bei System.IO.BinaryReader.Read7BitEncodedInt()
       bei System.Resources.ResourceReader._LoadObjectV2(Int32, System.Resources.ResourceTypeCode ByRef)
       bei System.Resources.ResourceReader.LoadObjectV2(Int32, System.Resources.ResourceTypeCode ByRef)
       bei System.Resources.ResourceReader.LoadObject(Int32, System.Resources.ResourceTypeCode ByRef)
       bei System.Resources.RuntimeResourceSet.GetObject(System.String, Boolean, Boolean)
       bei System.Resources.RuntimeResourceSet.GetObject(System.String, Boolean)
       bei System.Resources.ResourceManager.GetObject(System.String, System.Globalization.CultureInfo, Boolean)
       bei System.Resources.ResourceManager.GetStream(System.String, System.Globalization.CultureInfo)
    # 5 #
    Anwendung: WpfApp.exe
    Frameworkversion: v4.0.30319
    Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
    Ausnahmeinformationen: System.Runtime.InteropServices.SEHException
    Stapel:
       bei System.Reflection.RuntimeParameterInfo.get_Name()
       bei System.Diagnostics.StackTrace.ToString(TraceFormat)
       bei System.Environment.GetStackTrace(System.Exception, Boolean)
       bei System.Exception.GetStackTrace(Boolean)
       bei System.Exception.ToString(Boolean, Boolean)
       bei System.Exception.ToString(Boolean, Boolean)
       bei System.Exception.ToString(Boolean, Boolean)
       bei System.Exception.ToString()
    # 6 #
    Name der fehlerhaften Anwendung: XYZ.exe, Version: 2015.0.496.5054, Zeitstempel: 0x54ea834f
    Name des fehlerhaften Moduls: KERNELBASE.dll, Version: 6.3.9600.17278, Zeitstempel: 0x53eeb460
    Ausnahmecode: 0xe0434352
    Fehleroffset: 0x00012f71
    ID des fehlerhaften Prozesses: 0xa68
    Startzeit der fehlerhaften Anwendung: 0x01d0559cb7ec4ed6
    Pfad der fehlerhaften Anwendung: \\share\XYZ.exe
    Pfad des fehlerhaften Moduls: C:\WINDOWS\SYSTEM32\KERNELBASE.dll
    Berichtskennung: 010514d0-c190-11e4-bf04-78542e186754
    Vollständiger Name des fehlerhaften Pakets:
    Anwendungs-ID, die relativ zum fehlerhaften Paket ist:
    # 7 #
    Name der fehlerhaften Anwendung: XYZ.exe, Version: 2015.0.496.5054, Zeitstempel: 0x54ea7a6e
    Name des fehlerhaften Moduls: ntdll.dll, Version: 6.3.9600.17630, Zeitstempel: 0x54b0d74f
    Ausnahmecode: 0xc0000006
    Fehleroffset: 0x0006db27
    ID des fehlerhaften Prozesses: 0x18dc
    Startzeit der fehlerhaften Anwendung: 0x01d0559cb08529c3
    Pfad der fehlerhaften Anwendung: \\share\xyz.exe
    Pfad des fehlerhaften Moduls: C:\WINDOWS\SYSTEM32\ntdll.dll
    Berichtskennung: ef389186-c18f-11e4-bf04-78542e186754
    Vollständiger Name des fehlerhaften Pakets:
    Anwendungs-ID, die relativ zum fehlerhaften Paket ist:

    Hi,
    >>The applications run fine when launching from a FQDN share
    It sounds like a DNS suffix issue. When this issue occurs, please try to ping share on the client, then check if the corresponding IP address is correct. If the IP address is wrong, please adjust your settings of DNS to make sure that the client can resolve
    the share correctly.
    If it's very hard to change the settings of the DNS for some reason, as a work around, we can add the entry into the clients' hosts file.
    Best Regards.
    Steven Lee Please remember to mark the replies as answers if they help and unmark them if they provide no help. If you have feedback for TechNet Support, contact [email protected]

  • Session method and call transaction methos which one is the sap recomonded

    hi
    PLease give me the answer to these questions.
    session method and call transaction methos which one is the sap recomonded why .
    2) if we want to maintain BDC program in all the systems.wt to d0

    Hi Revethi,
    Here is the difference between the Session and Call Transaction method.
         Session
    Session method supports both small amount of data aswell as large amount of data
    2) data processing is asynchronus and data updation is synchronus.
    3) it process multiple apllication while perfomaning validations.
    4) in session method data will be updated in data base only after processing session only.
    5) system provide by default logfile for handling error records.
    6) it supports both foreground aswell as background process
    in bdc we use FM ... bdc_open_group " for creating Session
    bdc_insert " adding transaction and bdcdata table for updating database
    bdc_close_group " for closing Session
          Call Transaction
    Call transaction exclusively for small amout of data
    2) it supports only one apllication while perfoming validations
    3) there is no default logfile, We can explicitly provide logic for creating logfile for handling error records.
    we can create logfile by using structure....BDCMSGCOLL
    4) it doesn't support background processing.
    5) data processing is synchronous and Data updation is Synchronous( default), in
    this method also supports daya updation in asynchronus process also.
    Syntax:
    Call transaction <transaction-name> using BDCDATA
    mode <A/N/E> update <L/A/S>
    messages into BDCMSGCOLL.

  • Error: this type needs one of the following values('true','false')

    I'm trying to use <c:if> in a jsp (in Workshop 8.1), as in:
                   <c:if test="1 == 1">
              <!-- something here -->
              </c:if>
              But, I get the following message when I hover over the error indicator
              at the test:
              Error: this type needs one of the following values('true','false')
              It will actually work if I do:
                   <c:if test="true">
              <!-- something here -->
              </c:if>
              but, of course, that's useless.
              Am I missing something here?

    David Karr wrote:
              > The value of the "test" attribute needs to be an Expression Language expression. Try changing it to "${1 == 1}", and that should work.
              Actually, I had tried that, and it would have worked that way if I had
              the right taglib declaration -- I had accidentally left in the rt
              versions, so a <%= test %> type of expression worked.
              But, that's not the way I wanted to do it, so I put the non-rt versions
              in, along with tld and jar files that I had in some other directories,
              then it worked fine. In the process, when searching my hard drive for
              standard.jar, I noticed I had four or five different versions, each with
              a slightly different size. Of course, I had to tinker, and downloaded
              the zip from Apache, figuring it would be best to have a matched set of
              tlds and jars.
              And now I get an error that the matching class cannot be found:
              > ERROR: response.jsp:1: Package org.apache.taglibs.standard.tag.el.core contains no member type of this name.
              and
              > ERROR: response.jsp:14: The tag handler class was not found "org.apache.taglibs.standard.tag.el.core.IfTag".
              But, if I navigate the standard .jar that is in my WEB-INF/lib
              directory, lo and behold, there is the file IfTag.class in what appears
              to be the correct package.

  • How do I resend an invite email for one of the user in my Aruba Central account?

    Q: How do I resend an invite email for one of the user in my Aruba Central account?
    A: Aruba Central allows administrator to create multiple user of different access levels to help manage the system.  As new uses are created by administrator, an invitation email is sent to the user's email address to activate the account. 
    In certain situations, these emails get into spam or junk folders with no visibility to end-user. These are cases, where re-sending an invitation email is of much helpful.
    Follow these steps to resend invite email to a specific user:
    Login to Aruba Central and click on "All Groups"
    In the left-menu, click on "Maintenance" and then "User Management"
    Clik on "Resend Invite email" and mention the email address you wanted to send the invite again:

    By default, the Menu Type option for menus is set to Top Level Pages. You can change this behavior by choosing Menu Type > All Pages from the menu options. The steps to do this are described in Adding a Horizontal Menu widget

  • Is it possible to trade in a ipod 4th generation for one of the new ones?

    Is it possible to trade in an ipod 4th generation for one of the new ones?

    If you purchased it within the last 14 days you can return it for a full refund and then purchase the 5G. Otherwise Apple will only give you a 10% recycling discount if you turn in an old iPod and purchase a new one.

  • Two users share one Apple ID, on two phones. can they be separated without losing phone backups? IE creating a new ID for one of the users?

    my in-laws share one apple id for two separate iPhones. They would like to create a new ID for one of the users but maintain his current backup. can this be done?

    If you want to create a new account make sure you sign out of everything via the settings. (ICloud, iTunes, facetime, messages, etc) APPS: since the apps were downloaded with a different apple ID, you will always need to use the password for the apple ID that downloaded that particular APP when it needs to be updated. Unless it is free, you can simply delete it and download it under the new apple ID. As for the music, you can keep it on the IOS device,  but if it's accidentally deleted, you'd have to sign back into the original account and download from the cloud. (But, you risk getting the 90 day lockout. )

  • HT5622 facetime not connecting to all devices that use the same apple id.  I have both an iphone and ipad.  Incomin facetime calls connect randomly to one or the other or both.  (should be coming to both)

    I have an iPad and an iPhone, both registered to same AppleID.  Incoming Face time calls ring randomly on one or the other or both (and sometimes none). They should ring on both.

    check the 'recieve at' addresses you set in settings, facetime.  you can have multiple addresses. 
    On mine, i have thre addresses set the same.  I am using both a phone # and my e mail address  (neither one is my apple ID, by the way).
    If somebody calls me to FT using the phone #, the phone rings first, followed by the pad, about 10 sec later.  If they call using the e mail address, they both ring at about the same time.  If one or the other answers, the other device stops ringing. 
    So next time a call comes, wait a bit before answering to see if the other device responds.  and check your receive at addresses.  
    You might want to test a little - have somebody call using one address, or the other, and see if you can track the behavior.

  • Additional validation for one of the fields in down payment request

    Hi All ,
      I have a requirement for doing some additional validation for one of the fields in down payment request
    (F-47) .
    I need to validate a field u2018Assignmentu2019 in the down payment request .
    Here, assignment field is mandatory and user has to enter a valid contract number. Then we have to  validate the contract number entered against the tracking number field (BEDNR) in EKPO table corresponding to the vendor.
    If the contract number entered is incorrect, then system displays a message with the valid contract number. The user can modify the assignment field with this contract number. Once the field is modified, system once again validates whether the contract number entered is valid.
    Can you please provide me your valuable inputs how to achieve this.
    Regards,
    Tripti.

    Hi Vishal ,
      Thanks for your reply. I tried searching for  them but couldn't find any.
    Regards,
    Tripti.

Maybe you are looking for

  • Back order report in BW

    Hi All, We have a requirement for back order report in BW . we are using the extractors V_SSL and VASCL to get this information. The calculation for backorder and backlog qty are done from V_SSL. But there are few scenarios that we have to manage 1)

  • Is 1.7v vcore safe ???

    Is 1.7v vcore safe ??? I have Thermaltake Silent Boost K8 Heatsink & Tagan Tg-480 (480W) power supply. Temperature - OC at 217 FSB (1:1) - 44-47C    Athlon 3200 (2210 MHz - NC core, no OC) - MSI K8N NEO Platinum (1.4 bios) - 2x 512Mb PC3200 Geil Ultr

  • Program will not even open after installation from Cloud

    I installed the new version of Acrobat only to have the old removed and the new will not open.

  • WD My Book 1 TB External Hard drive firewire cable won't fit into Mac Pro

    Hi the firewire cable that came with my Western Digital My book External Hard Drive won't fit into my Quad Core Mac Pro. Is it the wrong cable? What's the correct cable that would connect my Western Digital External Hard Drive into my Quad Core Mac P

  • Which Chart of Accounts to be followed

    Hello One of my cleints want to get sap business one installed in  African country.  i have  implemented  as per indian localization. this is the first time i am implementing  for some african country.  my question is : 1. Can I use indian chart of a