Error: Windows SDK function returned an error. (Error code -12)

I receive this error when attempting to build an installer for my Labview application.
CDK_Item_OnDoProperties.vi.ProxyCaller >> CDK_Item_OnDoProperties.vi >> CDK_InstallerConfiguration_Editor.vi >> CDK_Build_Invoke.vi >> CDK_Engine_Main.vi >> CDK_Engine_Build.vi >> NI_MDF.lvlib:MDFDistCopyList_CopyItem.vi
Loading product deployment information
Loading product deployment information
Adding files to installer
Done adding files
Preparing to build deployment
Copying products from distributions
Copying distribution 'NI-DAQ 8.0.1' from: D:\ to: C:\DARTS\ATS_TE_Project\DARTS_NI-DAQ_HP3561A_Dynamic_Signal_Analyzer\Installer\
*** Error: Windows SDK function returned an error. (Error code -12)
The system cannot find the file specified.
*** End Error Report
Done building deployment

I was able to get the install builder to build an installer for my
Application today 6/6/07. These are the steps I performed along with good amounts of trail and error.
1) I attempted to re-install the NI-DAQ 8.0.1 drivers however I didn't
perform this because it said it remove NI products which I didn't want
removed. But it didn't tell me what it would remove.
2) Instead, I copied the entire NI-DAQ 8.0.1 distribution to a directory on my hard drive.
3) I set the NI-DAQ 8.3 install build type to FULL in install builder.
4) In install builder when prompted for the components from the NI-DAQ
8.0.1 I browsed to the NI-DAQ 8.0.1 directory on the hard drive and
also un-checked the cache box.
5) It through another error this time saying it couldn't find
C:\NI-DAQ8_0_1\8.0.1\Products\LabVIEW_Broker71\LVBroker71Deu.mst (and,
LVBroker71Fra.mst, LVBroker71jpn.mst, LVBroker1071Deu,
LVBroker1071Fra.mst, LVBroker1071jpn.mst). It also could not find the
LVBroker1071 files in the
C:\NI-DAQ8_0_1\8.0.1\Products\LabVIEW_Broker1071 directory either.
6) I performed a search for these files and they did not exist in the
NI-DAQ 8.0.1 directory on my hard drive or the 8.0.1 CD I have.
7) These files DID exist in my NI-DAQ 8.3 directory located on my hard drive.
8) I copied the LVBrokerxxxx.mst (listed in 5 above) files from the
NI-DAQ 8.3 directory on my hard drive to the corresponding location in
the NI-8.0.1 directory on my hard drive.
9) This time when I rebuilt the installer for my application the build was successful.
Additional information:
When I built my application I only selected English for language
support. In Install builder in "Dialog Information I also selected
English.
I haven't attempted to try the installer on my target yet so I'm not
quite sure how successful I really was but at least I have a installer.
Let me know if this also works for you.
Rich...

Similar Messages

  • Application builder Error: Windows SDK function returned an error. (Error code -12) *** End Error Report

     try to create an installer in Labview 8.6.  The build fail and I got this message.
    CDK_CreateNewWizard_Invoke.vi.ProxyCaller >> CDK_CreateNewWizard_Invoke.vi >> CDK_InstallerConfiguration_Editor.vi 
    >> CDK_Build_Invoke.vi >> CDK_Engine_Main.vi >> CDK_Engine_Build.vi >> NI_MDF.lvlib:MDFBuildDist_Build.vi
    Loading product deployment information
    Loading product deployment information
    Loading product deployment information
    Loading product deployment information
    Adding files to installer
    Done adding files
    Preparing to build deployment
    Copying products from distributions
    Copying distribution 'NI LabVIEW 8.6.1 Datalogging and Supervisory Control Module' from: 
    D:\software\application\LabView\NI.LABVIEW\NI-Labview 8.6.1 DSC Module\ to: C:\Documents and Settings\Lidaoling\桌面
    \Builds\generate waveform\My Installer\
    Building deployment
    Copying setup files
    Setting merged database information
    Setting product information
    Setting developer part information
    Starting final build
    Validating...
    Copying files...
    Updating files...
    Creating merged database...
    *** Error: Windows SDK function returned an error. (Error code -12)
    *** End Error Report
    Done building deployment 

    Solution

  • AYUDA me sale --Error code-12-- Windows SDK function returned an erro

    Buenas compañeros, necesito una super ayuda ya que quiero instalar en mi laptop q tiene wind7 y me sale este error:
    Error:  Windows SDK function returned an error (Error code-12)
    End Error Report
    Por favor ayudemen con alguna solucion para poder instalar el Labview 2008 8.6, ya que necesito hacer mi tesis.
    Les estare agradecido por todo, estamos en contacto y gracias

    Try posting in english here
    Translation 
    I need a super help because I want to install on my laptop has wind7 q and I get this error:
    Error: Windows SDK function returned an error (Error code-12)
    End Error Report
    Please help me with some solution to install the Labview 2008 8.6, and I need to do my thesis.

  • Getting Windows SDK function returned an error. (Error code -12) while building the D-kit

    Hi,
     I use LabWindows CVI 8.5 to build the D-kit in windows xp os.when i try to build the D-kit it is throwing the following error.i have attached the error log along with this post.request to provide solution to over come this issue ASAP.it is very urgent.Thanks in advance
    Regards
    Parthipan
    Attachments:
    errorlog.txt ‏1 KB

    I have not a direct experience on distribution kit, but the error seems related to the absence of NI-DMM 3.0.2 disk in your CD reader (D: could it be the cause?
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Error ERR-9131 Error in PLSQL function body for item default code, item=P24

    Hi All,
    Am getting the below error in my page 24
    ORA-01403: no data found
    Error ERR-9131 Error in PLSQL function body for item default code, item=P24_REQ_BY_ID
    OK
    I dont know what to do?:(
    Suddenly am getting this error in the page.
    Can anyone help me to understand why this error is coming?
    Thanks & Regards,
    Ramya
    Edited by: 901942 on Jan 29, 2012 10:16 PM

    Data stored in these tables is different. If Oracle says that there's no record that satisfies the WHERE condition, why do you think that it lies? It is too stupid to do that.
    Therefore, you need to handle the exception. There are several ways to do it. Here are some of them.
    The first one is the most obvious - EXCEPTION handling section.
    DECLARE
      default_value VARCHAR2(100);
    BEGIN
      SELECT ISID INTO default_value
        FROM USER_TBL
        WHERE UPPER(ISID) = UPPER(:APP_USER);
      RETURN default_value;
    EXCEPTION
      WHEN NO_DATA_FOUND THEN
        RETURN (null);  -- or whatever you find appropriate
    END;Another one is to use aggregate function (MAX is a good choice) as it won't return NO-DATA-FOUND, but NULL:
    DECLARE
      default_value VARCHAR2(100);
    BEGIN
      SELECT MAX(ISID) INTO default_value
        FROM USER_TBL
        WHERE UPPER(ISID) = UPPER(:APP_USER);
      RETURN default_value;
    END;

  • Function returned without value Error

    create or replace function dssppv.hra_find_short_path (
       p_new_rgmn_grp_gid    in   number
      ,p_tail_rgmn_grp_gid   in   number
      ,p_mkt_cnfgr_gid       in   number
       return string
    is
       v_rgmn_grp_path varchar2 ( 2000 );
       check_step varchar2 ( 2000 );
    begin
       dbms_output.put_line
          ( 'Begin of function  hra_find_short_path to Check Circular Loop : '
            || to_char ( sysdate, 'YYYY-MM-DD HH24:MI:SS' )
       check_step                 := ' Step 1 - Circular loop Check up.';
       --Checking for the circular loop
       select rgmn_path || '/' || gt.rgmn_grp_nam
       into   v_rgmn_grp_path
       from   ( select  min_rgmn_node
                       ,rgmn_path
                       ,rgmn_grp_gid
               from     ( select    level as min_rgmn_node
                                   ,dt.rgmn_grp_gid
                                   ,dt.tail_rgmn_grp_gid
                                   ,gp.rgmn_grp_nam
                                   ,rtrim
                                       ( reverse
                                            ( sys_connect_by_path
                                                      ( reverse ( gp.rgmn_grp_nam )
                                       ) as rgmn_path
                         from       dssppv.t_market_cnfgr_rgmn_grp_dtl dt join dssppv.t_market_cnfgr_rgmn_grp gp
                                    on (     dt.rgmn_grp_gid = gp.rgmn_grp_gid
                                         and gp.mkt_cnfgr_gid = p_mkt_cnfgr_gid
                         start with dt.tail_rgmn_grp_gid = p_new_rgmn_grp_gid
                         connect by nocycle prior dt.rgmn_grp_gid =
                                                              dt.tail_rgmn_grp_gid )
               where    rgmn_grp_gid = p_tail_rgmn_grp_gid
               order by min_rgmn_node )
             ,dssppv.t_market_cnfgr_rgmn_grp gt
       where  gt.rgmn_grp_gid = p_new_rgmn_grp_gid and rownum = 1;
       dbms_output.put_line ( ' Circular Loop is formed as shown :'
                              || v_rgmn_grp_path
       if ( v_rgmn_grp_path is not null )
       then
          dbms_output.put_line ( ' Circular Loop is formed as shown :'
                                 || v_rgmn_grp_path
       else
          dbms_output.put_line ( ' No Loop is formed.' );
       end if;
       dbms_output.put_line
             ( 'End of function  hra_find_short_path to Check Circular Loop : '
               || to_char ( sysdate, 'YYYY-MM-DD HH24:MI:SS' )
       return v_rgmn_grp_path;
    exception
    --  when no_data_found
      -- then
       --   dbms_output.put_line
        --     ( 'End  of function  hra_find_short_path to Check Circular Loop : '
         --      || to_char ( sysdate, 'YYYY-MM-DD HH24:MI:SS' )
          --return null;
       when others
       then
          dbms_output.put_line
                         ( 'Error in function DSSPPV.hra_find_short_path at: '
                           || check_step
          dbms_output.put_line ( sqlerrm );
          dbms_output.put_line
             ( 'End of function  hra_find_rgmn_grp_loops to Check Circular Loop : '
               || to_char ( sysdate, 'YYYY-MM-DD HH24:MI:SS' )
    end hra_find_short_path;
    /I purpose fully commented No Data Found Exception top check whether it was returning null when no record is found.
    But it was going into no data found exception when there is no record.
    But when execute sql separately it was showing zero records without raising the no data found error.
    it was not even going through the if loop .... Please Correct me if i did something wrong
    if ( v_rgmn_grp_path is not null )
       then
          dbms_output.put_line ( ' Circular Loop is formed as shown :'
                                 || v_rgmn_grp_path
       else
          dbms_output.put_line ( ' No Loop is formed.' );
       end if;

    Hi,
    Rede wrote:
    Frank,
    I am expecting that when no row is returned
    select rgmn_path || '/' || gt.rgmn_grp_nam
    into   v_rgmn_grp_path
    Null will be selected into v_rgmn_grp_path  unless there is an exception
    A SELECT INTO query must return exactly one row. If no rows satisfy the WHERE clause, then no rows are returned, and a NO_DATA_FOUND error is raised.
    One way to get around this is to do an aggregate query. If you use an aggregate function (like MIN) but no GROUP BY clause, then exactly one row will always be returned, even if the table has no rows, or no rows satisfy the WHERE clause. (You've probably used this feature before, saying "SELECT COUNT(*) FROM table_x;" and getting one row, containing 0, in the result set.)
    Try something like this
    select MIN (rgmn_path || '/' || gt.rgmn_grp_nam)
       into   v_rgmn_grp_path
       from   ( select  min_rgmn_node
            ,dssppv.t_market_cnfgr_rgmn_grp gt
    where  gt.rgmn_grp_gid = p_new_rgmn_grp_gid;Edited by: Frank Kulash on Jun 2, 2010 4:02 PM

  • All Windows I Install return boot\bcd error

    Have a l645d-s4040.
    Im Lost now.. I've read many threads similar to my problem, or exactly like my problem. Ive tried it all, and done at least 12 Different installs. heres the info:
    Bought it brand new, was unaware of making the restoration disks until it was too late.
    I had a virus, so I did "clean all" in diskpart, at the cmd prompt. So i can start fresh. I have a retail version of Windows 7 Home Premium 64 bit, which was the original OS. went through the installation process fine, until the reboot where its supposed to go through the second step of the installation. on reboot i get a "bcd\boot" error. Ive tried repairing the MBR, the Boot record, ive tried using align=1024, ive tried using paragon, and acronis to fix the boot record. Ive tried using boot managers. Ive tried installing windows vista, ive tried windows 7 ultimate 64 and 32 bit versions.. the only OS i can get to install is XP.. Im at a loss
    of course of done : Startup Repair (http://www.sevenforums.com/tutorials/681-startup-repair.html)
    So after the first step of of installation, which goes fine then reboots to continue the installation i get:
    Windows Boot Manager
    Windows failed to start. A recent hardware or software change might be the cause. To fix the problem:
    1. Insert your Windows installation disc and restart your computer.
    2. Choose your language settings, and then click “Next.”
    3. Click “Repair your computer.”
    If you do not have this disc, contact your system administrator or computer manufacturer for assistance.
    File: \Boot\BCD
    Status: 0xc000000f
    Info: An error occurred while attempting to read the boot configurations data.
    Enter= Continue ESC=Exit
    so i reboot with the install cd. which i downloaded from www.mydigitallife.info/windows-7-iso-x86-and-x64-official-direct- download-links-ultimate-professional-and-home-premium/.
    And ran the startup repair, first time no OS found and failed to save startup options.  rebooted and this time the repair worked and it booted fine running the 2nd step of the installation process.. on the reboot i got same boot\bcd error.. so i repeated the repair steps above.. it finally booted and finalized the installation.. i got to the desktop fine and installed all my drivers.  when i rebooted i got the same error.
    WHATS UP WITH THIS???

    Satellite L645D-S4040
    I would restore the hard disk to its original out-of-the-box contents using Toshiba recovery media, which you can obtain from Toshiba.
       Order Toshiba Recovery Media
    -Jerry

  • Win SDK function conflict with CVI library function

    I do not have  SDK_CONFLICT_PRIORITY defined.  Is this new to CVI 2009?
    The following code gives me an error  "11, 58   Too many arguments to `CVI_WriteFile'."
    #include <windows.h> 
    #include <formatio.h>  
    void function (void) {
        HANDLE hHandle = INVALID_HANDLE_VALUE;
        char buffer [1000] = {'\0'};
        DWORD dwWriteCount;
      if (!WriteFile (hHandle, buffer, 5, &dwWriteCount, NULL)) {
    I have included  <windows.h>   before   <formatio.h>  but CVI still wants to use the formatio version of WriteFile - it appears to have been renamed   CVI_WriteFile  ?!?!?
    If I eliminate the #include <formatio.h>  it compiles OK.
    Message Edited by menchar on 03-06-2010 04:00 PM

    Well, the complete source for formatio.h I reported before is this one:
    #ifdef _NI_mswin32_
    extern int CVIFUNC      cviprefix(CloseFile)(int handle);
    extern int CVIFUNC      cviprefix(OpenFile)(const char *filename,int rd_wrt, int action, int bin_ascii);
    extern int CVIFUNC      cviprefix(ReadFile)(int handle, char *buf, int count);
    extern int CVIFUNC      cviprefix(WriteFile)(int handle, const char *buf, int count);
    extern int CVIFUNC      cviprefix(SetCommitMode)(int commit);
    #define CloseFile       cviprefix(CloseFile)
    #define OpenFile        cviprefix(OpenFile)
    #define ReadFile        cviprefix(ReadFile)
    #define WriteFile       cviprefix(WriteFile)
    #define SetCommitMode   cviprefix(SetCommitMode)
    #else
    In the header this warning is present:
    /* This header must be included after any Windows SDK header or any header */
    /* that directly or indirectly includes a Windows SDK header.              */
    /* Some of the function names conflict with Windows SDK functions.         */
    As far as I can understand (but I'm not an expert on these very technical and tricky aspects of C) first of all CVI functions are renamed CVI_xxx, after it a call to WriteFile or any other function in that group is defined to be translated to CVI_WriteFile, so when you call WriteFile the preprocessor actually translates it in the CVI version of the function and SDK one is superseded.
    My understandment is that if you undefine WriteFile, you can actually use both functions if you want: native CVI one by calling CVI_WriteFile and SDK one by simply calling WriteFile.
    ...or I can be missing some other hint, which can surely be possible!
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • PL/SQL: Function returned without value in authentication schemes

    Hi all,
    finally i did the authentication shemes based on my function and my own table ,thank you all for help :-) ,but now when i enter
    1-correct user name &wrong password <it is gonna work,the authentication workin fine >
    i am gonna get <Invalid Login Credentials> which is right in case of wrong login
    2-wrong user name &wrong password <it is not gonna work>
    3-wrong user name &correct password <it not gonna work>
    in case of not working i am getting the following error:
    ORA-06503: PL/SQL: Function returned without value
    Error ERR-10460 Unable to run authentication credential check function.
    any help to solve this issue so that it will display <Invalid Login Credentials>
    in all cases of invalid login
    thanks in advance ,
    Ahmed,

    scott,you efforts was useful and i beleive that the error that i am getting it is from the function that i have can you please take a look on :
    FUNCTION CHECK_USER
    ( P_USERNAME IN varchar2,
    P_PASSWORD IN varchar2)
    RETURN boolean
    IS
    BEGIN
    for c1 in (select user_name, password from vms2_employee_details where user_name = P_USERNAME)
    loop
    if P_PASSWORD = c1.password then
    return true;
    ------dbms_output.put_line('the return from the function is true');
    else
    return false;
    ----dbms_output.put_line('the return from the function is false');
    end if;
    end loop;
    EXCEPTION
    WHEN no_data_found THEN
    return false;
    when others then
    return false;
    ----dbms_output.put_line('the return from the function is false');
    END;
    and tell me what do you think ,
    thanks,
    ahmed

  • ORA-06503 Function returned without value

    Hi All,
    I'm getting ORA-06503: PL/SQL: Function returned without value error on this function..... can u guide me where Im going wrong?
    Cheers!
    I
    FUNCTION XX(P_Trial_No IN PATIENT_VISITS.TRIAL_NO%TYPE,
    P_PATIENT_VISIT_NO IN PATIENT_VISITS.PATIENT_VISIT_NO%TYPE) RETURN NUMBER IS
    L_Sequence_No Patient_Visit_Designs.Sequence_No%TYPE;
    BEGIN
    -- Retrieves and returns sequence Number from patient visit designs
    IF p_patient_visit_no IS NOT NULL THEN
    SELECT Sequence_No
    INTO L_Sequence_No
    FROM Patient_Visit_Designs pvd
    WHERE pvd.Trial_No = P_Trial_No AND
    pvd.Patient_Visit_No = P_Patient_Visit_No;
    RETURN L_Sequence_No;
    ELSE
    RETURN NULL;
    END IF;
    EXCEPTION
    WHEN NO_DATA_FOUND THEN
    NULL;
    END XX;

    CREATE OR REPLACE FUNCTION xx (
       p_trial_no           IN   patient_visits.trial_no%TYPE,
       p_patient_visit_no   IN   patient_visits.patient_visit_no%TYPE
       RETURN NUMBER
    IS
       l_sequence_no   patient_visit_designs.sequence_no%TYPE;
    BEGIN
       l_sequence_no := NULL;
    -- Retrieves and returns sequence Number from patient visit designs
       BEGIN
          IF p_patient_visit_no IS NOT NULL
          THEN
             SELECT sequence_no
               INTO l_sequence_no
               FROM patient_visit_designs pvd
              WHERE pvd.trial_no = p_trial_no
                AND pvd.patient_visit_no = p_patient_visit_no;
          END IF;
       EXCEPTION
          WHEN NO_DATA_FOUND
          THEN
             l_sequence_no := NULL;
       END;
       RETURN l_sequence_no;
    END xx;

  • Windows sdk help file?

    Hi !
    I'm looking for windows sdk help file ?
    I'm using LabWindows 5.5 and I can't find
    information about windows sdk functions ?
    Piotr

    In order to use Windows SDK files you must have CVI Full Development System, not the starter kit nor base package.
    To install SDK on your hard disk you must run Custom installation: you will be prompted for a list of all installable items in which to select the appropriate options.
    Hope this helps
    Roberto
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • CVI 2013 and Windows SDK

    Hi,
    I just downloaded and installed Labwindows/CVI 2013 full development system on my new computer.
    It's a Win7 64 bit computer.
    Do I have to do any additional installations to use Windows SDK functions, or is it included in the typical installation?
    Thanks,
    Kirk
    Solved!
    Go to Solution.

    Unless in 2013 something has changed, normally you must explicitly select the corresponding option in order to have the SDK installed. You must perform the setup again and expand the CVI item in the product tree, next select "Interface to the Win32 API" item: the appropriate libraries and include files  will then be installe on your system.
    Proud to use LW/CVI from 3.1 on.
    My contributions to the Developer Zone Community
    If I have helped you, why not giving me a kudos?

  • Netsh commands in Windows SDK?

    My PC has two network adapter cards and I need to implement a test that disables each of them individually. Is there a way to do the equivalent of these commands...
    netsh interface show interface
    netsh interface set interface "Local Area Connection" ENABLED
    ...using Windows SDK function calls?  The only other way I know would be to run the commands using system() or LaunchExecutable, dump the results to an output file, and parse the file to see the results.  I'd rather be able to do it a neater way.

    Hi richferrara,
    You may get some more feedback on the Windows API functions by posting in the Microsoft Developer Network forums. There appears to be an Enable/Disable network card forum on the MSDN that describes several solutions to trying to implement this action.
    In addition, on StackOverflow there is a fairly thorough discussion of trying to perform this action in a forum titled Programatically disable/enable network interface that discusses the complexities of platform specific implementations and behaviors of this functionality.
    Milan

  • UDPWrite in a loop. "A Windows Sockets function call returned an unexpected error."

    Hello together,
    i use UDP Support Library in NI CVI 9.0. When i wait for receiving a packet at the pc to send then a packet from the pc, the functions UDPRead and UDPWrite work fine. If i want to test the maximum throughput, i put the UDPWrite in a loop, but then an error occurs. It is "kUDP_UnexpectedWinsockError"
    Error Popup:
    "NON-FATAL RUN-TIME ERROR:   "main.c", line 53, col 22, thread id
    0x00000C18:   Library function error (return value == -6822
    [0xffffe55a]). A Windows Sockets function call returned an unexpected
    error."
    Line 53:
    status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
    the whole loop:
    while(1)
    status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
    counter++;
    if(counter>50)
    break;
    else{;}
    The error occurs after 3-16 packets have been sent. If i step through the programm, no error occurs. So i guess its because the UDPWrite command is invoked too fast. pOutputBuffer has static data. I could use a delay in the loop, but then i dont know how to configure for maximal throughput.
    Any ideas how to avoid this error?
    Regards Florian

    Hello and thank you for your answer. Sorry that i reply a month later.
    I dont know what you mean by "let 'er rip approach". Do you mean something like:
    status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
    if(status==0)
     counter++;
    else
      Delay(0.00005);
    I did not yet try to put the packet number in the payload, but there is just a 30 cm crossover cable between the two devices, no switch, no router. So the sequence should not be interruptet. And even if they arrive in chaos, i dont mind.
    I have contacted the NI support 2 weeks ago, but no response yet.
    I did some tests with a delay between the execution of UDPWrite(). The code:
    float time = 0.0;
     for(i = 1; i < 1000; i++)
      status = UDPWrite (channel, 60100, "192.168.1.10", pOutputBuffer, 1458);
      time = 1.0 / i;
      Delay(time);
    The results:
    For i between 1 and 1000: no error, the speed of the last ten packets was about 6.5 MBit/s
    For i between 1000 and 2000: error occured at i = 1585 (variable time in Delay was 0.0006313), the speed of the last ten packets was about 8 MBit/s
    Then i put some constant values in Delay and ran 100 UDPWrite iterations:
    Delay(0.0006): 7.48 MBit/s
    Delay(0.0001): 10.7 MBit/s
    Delay(0.00001): error occured at i=31, speed of 31 packets was 12.0 MBit/s
    Delay(0.00008): 100 of 100 packets, speed 10.9 MBit/s
    Delay(0.00005): error at i=41, speed of 41 packets 11.1 MBit/s

  • ODBC functions SQLExecDirectW and SQLExecute functions return error:"DIAG [22001] [Microsoft][SQL Server Native Client 10.0]String data, right truncation (0) "

    Problem Description:
    ODBC functions SQLExecDirectW and SQLExecute functions return error:”DIAG [22001] [Microsoft][SQL Server Native Client 10.0]String data, right
    truncation (0) “. When we enable tracing in the ODBC administrator, in the SQL.log we see that values for the arguments: ColumnSize, BufferLength, and StrLen_or_IndPtr of ODBC function SQLBindParameter are not being displayed.
    Environment Used:
    OS: Microsoft Windows Server 2003 R2 Standard x64 Edition.
    Complier: Microsoft Visual Studio 2008 SP1 for x64.
    Database: Microsoft SQL Server 2008
    MDAC: Microsoft Data Access Components SDK 2.8
    Note: This problem is seen only in our 64bit application. However, in 32bit
    SQLExecDirectW and SQLExecute functions return successfully.
    As we could not find the values of 6<sup>th</sup>, 9<sup>th</sup> and 10<sup>th</sup> arguments(ColumnSize,
    BufferLength, and StrLen_or_IndPtr) passed to
    SQLBindParameter in the ODBC traces for 64bit, we are not sure whether the values for the above mentioned arguments are received correctly by SQLBindParameter or not. This information would help us to debug further. So, could you please let us know why
    these values are not displayed.
    1)Here is the extract of the SQL.log file for 32bit where the values for SQLULEN , SQLLEN and SQLLEN* are displayed properly:
    PR0CNFG 1028-15f0 ENTER SQLBindParameter
    HSTMT 0x006FBDD8
    UWORD 1
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD -8 <SQL_C_WCHAR>
    SWORD -9 <SQL_WVARCHAR>
    SQLULEN 23
    SWORD 0
    PTR 0x0595EBBA
    SQLLEN 46
    SQLLEN * 0x05A5FB00
    2)Here is the extract of the SQL.log file for 64bit where the values for SQLULEN , SQLLEN are not displayed properly and
    SQLExecDirectW function return error:”DIAG
    [22001] [Microsoft][SQL Server Native Client 10.0]String data, right truncation (0) “. :
    PR0CNFG a78-fe4 ENTER SQLBindParameter
    HSTMT 000000000431D2F0
    UWORD 1
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD -8 <SQL_C_WCHAR>
    SWORD -9 <SQL_WVARCHAR>
    SQLULEN SQLULEN SWORD 0
    PTR 0x0000000005364EFA
    SQLLEN SQLLEN
    SQLLEN * SQLLEN *
    PR0CNFG a78-fe4 EXIT SQLBindParameter with return code 0 (SQL_SUCCESS)
    HSTMT 000000000431D2F0
    UWORD 1
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD -8 <SQL_C_WCHAR>
    SWORD -9 <SQL_WVARCHAR>
    SQLULEN SQLULEN SWORD 0
    PTR 0x0000000005364EFA
    SQLLEN SQLLEN SQLLEN *

    Hi Nalsr,
    From my research, I found:
    "[Microsoft][ODBC SQL Server Driver]String
    data right truncation" error may be returned from a call to
    SQLBindParameter if the size of the string parameter being used is greater than the size of the column being compared to. In other words if the
    string size of the <expression> to the left of the <comparison_operator> is less than the
    string size of the <expression> to the
    right, ODBC may return this error.
    The resolution is to make the string size of the <expression> to the
    right of the <comparison_operator> less than or equal to the
    string size of the <expression> on the left.
    It is difficult to track down this type of problem when third party development applications are being used. ODBC Trace can be used to help determine if this problem is occuring.
    Here is an example where the customer has submitted a query "select count(*) from type1 where type1 = ?", type1 is varchar(5) and the
    data type being passed by the application is char[9].
    Here is the relevant portion of the trace. The following information from the "exit" of SQLDescribeParam
    SWORD * 0x0095e898 (12)
    UDWORD * 0x0095e880 (5)
    Maps to the following with the actual value in parenthesis - SQL_VARCHAR Size 5:
    SQLSMALLINT *DataTypePtr
    SQLUINTEGER *ParameterSizePtr
    The "exit" value from SQLBindParameter provides the following
    information:
    SWORD 1 <SQL_PARAM_INPUT>
    SWORD 1 <SQL_C_CHAR>
    SQL Data Type SWORD 12 <SQL_VARCHAR>
    Parameter Size UDWORD 5
    SWORD 0
    Value PTR 0x0181c188
    Value Buffer Size SDWORD 5
    String Length SDWORD * 0x0181c103 (9)
    The string length parameter is the length of the
    string being bound to the parameter, in this instance there is a size mismatch which results in the SQLError and the SQLErrorW with the message "[Microsoft][ODBC SQL Server
    Driver]String data
    right truncation" .
    Hope this could be helpful.
    Best regards,
    Halin Huang

Maybe you are looking for