Jump to content

Neil Pate

Members
  • Posts

    1,185
  • Joined

  • Last visited

  • Days Won

    110

Posts posted by Neil Pate

  1. Hmm still not really making any progress with this. My DB definitely has millisecond data in it. I have a table t1 with a single column of type DATETIME and have two records in this table, both with millisecond precision. If I execute the query from the server I get back the milliseconds, but the same query from within LabVIEW drops the milliseconds.

    It seems this is an issue with the OBDC driver, but I am not sure how to solve this. It has been suggested to perform an on-the-fly conversion to text as per my previously linked thread, but I cannot get this query to work properly.

    Any ideas?

     

     

    Capture.JPG

    Capture2.JPG

    Capture3.JPG

    Capture4.JPG

  2. 4 hours ago, smithd said:

    Personally, I always do exactly 1 pattern:

    -Use static strict VI ref to get VI Name
    -Wire static strict VI ref + VI name to Open VI ref once and only once ever during the execution of the entire program. Use 0xC0 (40,80).
    -Call start async call as needed. 

    I've never had an issue with this pattern.

    This is exactly the same method I use. I use it to dynamically launch single instance of VIs that are never expected to be re-entrant, and also re-entrant clones. The only difference for the re-entrant clones is the flags used to open and the VI itself needs to be set to re-entrant.

    The two flags in the VI below are just the 0x80 and 0x40 flags.

     

    Capture.JPG

    Capture2.JPG

  3. 2 hours ago, smithd said:

    Wow I had no idea fractional times were so recent in mysql. Thats crazy.

    As for timestamps I had no issues using the standard db connectivity toolkit with timestamps at up to 1 ms of precision (using var to data) but if you get it as a string the format is different from that returned by the database itself, if I remember correctly. We were using both the odbc driver and the tcp driver and the string formats were different in some way. Or maybe it was something with time zones? I could see that being an issue if you let labview handle the conversion for you.

    Using the standard DB toolkit I cannot yet retrieve the fractional part using, but this could just be me doing something wrong as I have seen threads (like this) which states it should be possible. I have now confirmed using the mysql tools on the server that I can insert and retrieve fractional seconds using the DATETIME(n) type where n is the number of decimal places.

    Will do some more digging tomorrow.

  4. Finally upgraded and of course the command to create the table did not work... because I had a mistake in.

    CREATE TABLE t1 (t dt DATETIME(6));

    The "t" above was the remname of another column I had deleted from my query to simplify it, but obvsiously did not delete enough of it.

    Should be: CREATE TABLE t1 (dt DATETIME(6));

    Still don't know if this has worked but getting somewhere slowly.

  5. Hi guys,

    I need to be able to insert and retrieve a timestamp into an SQL database with miliisecond precision (ideally three digits of precision).

    Complicating the issue is that my final system is going to be hosted in a MS-SQL (so T-SQL) DB, but I am testing locally using a LAMP stack.

    I have done quite a bit of digging, it seems T-SQL would like me to use datetime2 type, but this is not available in MySQL. Apparently I can should use DATETIME(3) as the type. I am struggling to create a table with this as a valid column. I am using a LAMP VM appliance which I believe is running the a version of MySQL that supports fractional timestamps, but the SQL statement to create the table is failing.

    CREATE TABLE t1 (t dt DATETIME(6));

    Any ideas what I am doing wrong?

    Secondly, it looks like the NI DB Toolkit has very primitive support for timestamps, and people prefer to use strings? Can anybody share their current "best practice after having done it wrong a few times" with me? Beer on me for solutions :beer_mug:

    Thanks 

     

     

     

     

    Capture.JPG

  6. Filipe, I do not see NI getting into the business of suing the end users of LV FPGA.

    Not that I disagree with your points, I just think it is unlikely NI would go after anybody other than the obvious primary culprit.

    Now, even having said that, I am still not going to expose my company (or my clients) to this risk and will choose NI officially sanctioned products over questionably legitimate offerings.

  7. 2 minutes ago, drjdpowell said:

    I always find images annoying because the are by-ref.  You send a copy of the reference to the image, not a copy of the image.  

    But they are kinda ByVal as you wire into an indicator to actually display the image. You cannot just make that association once and then assume it will automatically get updated.

  8. 2 minutes ago, drjdpowell said:

    Cast it to a U64 instead of an I32; then the numbers are different.

    Bingo! Thanks James.

    So Image refs are just plain old normal U64 size refs? I sometimes wish there was a way to see refs as native "pointers" in a probe rather than the special type (i.e. the image). I suppose I could create a custom probe and just display the U64...

  9. Hi gang,

    Simple question, can I treat a Vision Images ref just like any other U32 ref with all the rules applicable like forking wires etc? It seems to me that there is some kind of special stuff going on with Vision Image refs.

    Another related question, in my particular use case I have a piece of code generating a user event with an image as the data at some arbitrary fast rate. The act of Generating the user event creates the a copy, right? Some other code wants to process some of these frames (at a slower rate) and then I use IMAQ Copy to make a local copy, is this IMAQ Copy necessary or could I just hold onto the "Image" reference coming in from the user event? In the code below Images is just a local buffer I plan on using.

    Capture.JPG

     

    The reason I ask is I am getting some weird behaviour whereby destroying my Images refs as shown in Capture3.jpg kills my acquisition code as well. (I presume because I am forcing all images to be destroyed, but I am surprised this is happening)

    Capture2.JPG

    Capture3.JPG

  10. 1 hour ago, peter_flores said:

    @Neil Pate thanks! So, you are describing a one-time break and fix? When you say manually relink the ActiveX component, is that similar to my screenshots Version 1.3 and Version 1.9 above? Also, interested in your thoughts on the RGT as noted above... Thanks!

    I did not need to do as you documented, it was sufficient for me to just re-select the broken method call inside the offending RGT VI . If memory serves me correctly it was the "SaveAs" method of the _Workbook object. All I had to do was reselect the method and it then was no longer broken. I think I noticed that the new method had an additional input.

    But as I mentioned, although this worked fine on my PC it was broken on the target PC which had a much older version of Excel, so in a panic I uninstalled Office 365 and installed Office 2010 and everything then worked fine.

    Capture.JPG

  11. I do not have an answer to your problem but can only share something that happened recently which is probably not related to your issue but I will say anyway. I have an Office 365 subscription and one of the more recent updates broke the report generation toolkit as the ActiveX interface to Excel changed. I was able to manually relink the ActiveX component in the code and everything worked fine on my PC after that, but the executable would then not run on my target machine which had an older version of Excel on it.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.