473,511 Members | 16,358 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Storing variables in DB for later recall

dbrewerton
115 New Member
Hello folks, I've got one that seems a little tricky to me. What I want to do is to calculate my cumulative BTU measurements. I'm already storing various information in the database where I can calculate the BTU/Hr production. The formula to calculate Cumulative BTUs is as follows (per minute):

Expand|Select|Wrap|Line Numbers
  1. (BTU1+BTU2) / 2 * .0167
  2.  
  3.  
I calculate the BTU/Hr production using this formula:

Expand|Select|Wrap|Line Numbers
  1. (t2-t1) * flow rate * brine factor * system status
  2.  
  3. (38.72 - 36.77) * 14.5 * 485 * 1 = 13713.375 BTU/Hr.
  4.  
Now, what I want to do is to calculate these BTU/Hr production measurements on the fly. I will have different devices sending data in at different time slices. To help clarify, my table structure is shown below:

Expand|Select|Wrap|Line Numbers
  1. slices
  2.        |
  3.        > slice_id
  4.        > device_id
  5.        > timestamp
  6.  
  7. slice_msmsnt
  8.        |
  9.        > msmnt_id
  10.        > slice_id
  11.        > msmnt_type_id
  12.        > msmsnt_value
  13.  
The common field between those two tables is slice_id. Any assistance with this would be greatly appreciated.
Mar 16 '10 #1
10 2110
code green
1,726 Recognized Expert Top Contributor
What are you using as a front end?
Can you do the calculations in there?
Mar 17 '10 #2
dbrewerton
115 New Member
Actually I figured out the algorithm when I call my stored procedure. The problem I have now is trying to handle a NULL value. This is the block of code that its hanging up on:

Expand|Select|Wrap|Line Numbers
  1. select MAX(id) from ewise_cumulative_btus where device_id = x_device_id into lastbtuid;
  2. select curbtus from ewise_cumulative_btus where id = lastbtuid INTO lastbturead;
  3. select (btucalc + lastbturead) INTO lastcurbtus;
  4.  
  5. # right here is where I'm getting messed up...what should I use to handle NULL?
  6. if (lastcurbtus = NULL) then
  7. insert into ewise_cumulative_btus (device_id,curbtus,cumul_btus) values(x_device_id,btucalc,0);
  8. else
  9. insert into ewise_cumulative_btus (device_id,curbtus,cumul_btus) values(x_device_id,btucalc,lastcurbtus);
  10. end if;
  11.  
Mar 17 '10 #3
code green
1,726 Recognized Expert Top Contributor
Comprisons fall down where NULL is involved.
To test for a NULL value use IS NULL
Mar 17 '10 #4
dbrewerton
115 New Member
Ok, I figured that one out, I did this:

Expand|Select|Wrap|Line Numbers
  1.  
  2. if (lastcurbtus IS NULL) then
  3.     set lastcurbtus = 0;
  4. end if;
  5.  
My problem now though is it adds the first three rows fine but then it repeats the third rows entry.

Expand|Select|Wrap|Line Numbers
  1. device_id           |         curbtus            |         cumul_btus
  2. 10                     |              000            |                  0
  3. 10                     |              453            |                  453
  4. 10                     |              453            |                  906
  5. 10                     |              453            |                  906
  6. 10                     |              453            |                  906
  7.  
Any idea what I'm doing wrong? Here's the block that does this part:

Expand|Select|Wrap|Line Numbers
  1. select MAX(id) from ewise_cumulative_btus where device_id = x_device_id into lastbtuid;
  2. select curbtus from ewise_cumulative_btus where id = lastbtuid INTO lastbturead;
  3. select (btucalc + lastbturead) INTO lastcurbtus;
  4. if (lastcurbtus IS NULL) then
  5. set lastcurbtus = 0;
  6. end if;
  7.  
  8. insert into ewise_cumulative_btus (device_id,curbtus,cumul_btus) values(x_device_id,btucalc,lastcurbtus);
  9. select x_device_id,btucalc,lastcurbtus;
  10.  
Mar 17 '10 #5
code green
1,726 Recognized Expert Top Contributor
Your method is a little unconventional.
I can't see the problem directly.
You need to debug by performing each process in step and looking at the results at each step.
That should narrow the problem down
Mar 18 '10 #6
dbrewerton
115 New Member
Ok, let me try to explain the issue a little more clearly. I have a table named cumulative BTUs which in the table logic, I'm trying to get my SP to take the most recent cumulative BTU calculation and add it to the current BTU calc to come up with a new cumulative BTU count. Should be pretty straight forward but I'm not getting what I would expect. My procedure which does this math is shown below:

Expand|Select|Wrap|Line Numbers
  1. #Grabs current time slice
  2. select slice_id from ewise_slice where device_id = x_device_id order by slice_id DESC LIMIT 1 into slice1;
  3. #Grabs 2nd most recent time slice
  4. select slice_id from ewise_slice where device_id = x_device_id order by slice_id DESC LIMIT 1,1 into slice2;
  5.  
  6. #Setting value time1 of most recent slice
  7. select slice_timestamp from ewise_slice where slice_id = slice1 INTO time1;
  8. #Setting value time1 of 2nd most recent slice
  9. select slice_timestamp from ewise_slice where slice_id = slice2 INTO time2;
  10. #Compare timestamps to get a time factor for calc
  11. SELECT TIMESTAMPDIFF(MINUTE,time2,time1) into slicetimediff;
  12. # if the value is null, set it to 1 for default
  13. if (slicetimediff IS NULL) then
  14.     set slicetimediff = 1;
  15. end if;
  16.  
  17. #setting flowrate
  18. select egw_con_flowrate from egw_constants where egw_con_device_id = x_device_id INTO flowrate;
  19. #setting brine factor (ethanol is 485, pure water is 500)
  20. select brine from egw_constants where egw_con_device_id = x_device_id INTO brinefactor;
  21.  
  22. #tempurature readings 1 and 2 plus system status for first time slice
  23. select msmnt_value from ewise_slice_msmnt where slice_id = slice1 AND msmnt_type_id = '1' INTO t1_1;
  24. select msmnt_value from ewise_slice_msmnt where slice_id = slice1 AND msmnt_type_id = '2' INTO t2_1;
  25. select msmnt_value from ewise_slice_msmnt where slice_id = slice1 AND msmnt_type_id = '3' INTO c1_1;
  26.  
  27. #same for time slice 2
  28. select msmnt_value from ewise_slice_msmnt where slice_id = slice2 AND msmnt_type_id = '1' INTO t1_2;
  29. select msmnt_value from ewise_slice_msmnt where slice_id = slice2 AND msmnt_type_id = '2' INTO t2_2;
  30. select msmnt_value from ewise_slice_msmnt where slice_id = slice2 AND msmnt_type_id = '3' INTO c1_2;
  31.  
  32. #calculate BTUHr production for slice 1
  33. SELECT ABS(t2_1 - t1_1) * flowrate * brinefactor * c1_1 INTO BTUHr1;
  34. #calculate BTUHr production for slice 2
  35. SELECT ABS(t2_2 - t1_2) * flowrate * brinefactor * c1_2 INTO BTUHr2;
  36.  
  37. # If this is the first entry in the table for this device then the value will be null
  38. # so set it to zero
  39. IF (BTUHr2 IS NULL) then
  40.     set BTUHr2 = 0;
  41. end if;
  42.  
  43. # Now we calculate the btu output for the past two time slices
  44. SELECT (BTUHr1+BTUHr2)/2*(slicetimediff/60) INTO btucalc;
  45.  
  46. # Grab most recent record id 
  47. select id from ewise_cumulative_btus where device_id = x_device_id order by id desc LIMIT 1,1 INTO lastbtuid;
  48.  
  49. # If this is the first reading, this will calculate to NULL so set to 0
  50. select ABS(cumul_btus) from ewise_cumulative_btus where id = lastbtuid INTO lastbturead;
  51.  
  52. if (lastbturead IS NULL) then
  53.     set lastbturead = 0;
  54. end if;
  55.  
  56. # Echo to screen to see what the values are - trying to add them together
  57. # This seems to be what isn't working...
  58. select (ABS(btucalc) + ABS(lastbturead)) INTO lastcurbtus;
  59.  
  60. # Now insert the values into the row - 
  61. insert into ewise_cumulative_btus (device_id,curbtus,cumul_btus) values(x_device_id,btucalc,lastcurbtus);
  62. select BTUHr1,BTUHr2,flowrate,brinefactor,x_device_id,btucalc,lastcurbtus;
  63.  
I hope I documented the code well enough. Looking forward to your response :)
Mar 19 '10 #7
dbrewerton
115 New Member
Thought this may help. I'm going to include my entire SP plus the echoed results. What I'm finding is it is adding the cumulated BTUs from two records ago instead of using the last record. Take a look below:

Expand|Select|Wrap|Line Numbers
  1. mysql> DELIMITER $$
  2. mysql> CREATE PROCEDURE `parse_rawtest2`()
  3.     ->
  4.     -> BEGIN
  5.     ->
  6.     -> DECLARE x_id BIGINT;
  7.     -> DECLARE xtext text;
  8.     -> DECLARE useless1 text;
  9.     -> DECLARE useless2 text;
  10.     -> DECLARE x_device_string varchar(30);
  11.     -> DECLARE x_device_id BIGINT;
  12.     -> DECLARE slice_text text;
  13.     -> DECLARE time_text text;
  14.     -> DECLARE new_slice_id BIGINT;
  15.     -> DECLARE msmnt_tag VARCHAR(30);
  16.     -> DECLARE value_text text;
  17.     -> DECLARE x_msmnt_type_id BIGINT;
  18.     ->
  19.     -> DECLARE base_time DATETIME;
  20.     -> DECLARE time_shift DATETIME;
  21.     -> DECLARE time_diff BIGINT;
  22.     -> DECLARE goodtime DATETIME;
  23.     -> DECLARE xtextcopy text;
  24.     ->
  25.     -> # slice1 is active slice - slice2 is the previous slice - time1 and time2 relate to these respectively
  26.     -> DECLARE slice1 bigint;
  27.     -> DECLARE slice2 bigint;
  28.     -> DECLARE time1 DATETIME;
  29.     -> DECLARE time2 DATETIME;
  30.     -> DECLARE slicetimediff BIGINT;
  31.     ->
  32.     -> #variables for BTUHr calc
  33.     -> DECLARE flowrate BIGINT;
  34.     -> DECLARE brinefactor BIGINT;
  35.     ->
  36.     -> #BTU/Hr calc 1
  37.     -> DECLARE btuhr1 bigint;
  38.     -> DECLARE t1_1 BIGINT;
  39.     -> DECLARE t2_1 BIGINT;
  40.     -> DECLARE c1_1 BIGINT;
  41.     ->
  42.     -> #BTU/Hr calc 2
  43.     -> DECLARE btuhr2 BIGINT;
  44.     -> DECLARE t1_2 BIGINT;
  45.     -> DECLARE t2_2 BIGINT;
  46.     -> DECLARE c1_2 BIGINT;
  47.     ->
  48.     -> #calculation of (BTUHr1+BTUHr2)* 2 * slicetimediff/60
  49.     -> DECLARE btucalc bigint;
  50.     ->
  51.     -> #Insertion values for cumulative BTUs
  52.     -> DECLARE lastbtuid BIGINT;
  53.     -> DECLARE lastbturead BIGINT;
  54.     -> DECLARE lastcurbtus BIGINT;
  55.     ->
  56.     -> #Loop for all rows in table
  57.     -> main_loop: LOOP
  58.     ->
  59.     ->         #Get a row, if we can't we're done
  60.     ->         SET x_id = -1;
  61.     ->         SELECT ewise_raw_data_in.raw_id, ewise_raw_data_in.raw_data_xml, ewise_raw_data_in.raw_data_datetime FROM ewise_raw_data_in LIMIT 1 INTO x_id, xtext, goodtime;
  62.     ->         IF (x_id = -1) THEN
  63.     ->                 LEAVE main_loop;
  64.     ->         END IF;
  65.     ->
  66.     ->
  67.     ->         CALL get_node_content(xtext, 'energywise', xtext, useless1, useless2);
  68.     ->
  69.     ->         CALL get_node_content(xtext, 'device', x_device_string,useless1,xtext);
  70.     ->
  71.     ->  set x_device_id = 0;
  72.     ->  SELECT ewise_device.device_id FROM ewise_device WHERE ewise_device.device_string = x_device_string INTO x_device_id;
  73.     ->
  74.     -> #        select x_id, x_device_string, x_device_id;
  75.     ->
  76.     ->  IF (x_device_id = 0) THEN
  77.     ->  INSERT INTO ewise_device (device_string) VALUES (x_device_string);
  78.     ->  SELECT MAX(device_id) INTO x_device_id;
  79.     ->  END IF;
  80.     ->
  81.     ->         CREATE TEMPORARY TABLE IF NOT EXISTS temp_slice LIKE ewise_slice;
  82.     ->         set xtextcopy = xtext; # make a backup to check time
  83.     ->         WHILE length(xtext) > 0 DO
  84.     ->         CALL get_node_content(xtext, 'slice', slice_text, useless1, xtext);
  85.     ->                 IF length(slice_text) >0 THEN
  86.     ->                         CALL get_node_content(slice_text, 'time', time_text, useless1, slice_text);
  87.     ->                         INSERT INTO temp_slice VALUES (default, x_device_id, time_text);
  88.     ->                 END IF;
  89.     ->         END WHILE;
  90.     ->         Select max(time_text) from temp_slice into base_time;
  91.     ->         select TIMESTAMPDIFF(SECOND,time_text,goodtime) INTO time_diff;
  92.     -> #       select goodtime, base_time, time_diff;
  93.     ->         drop table temp_slice;
  94.     ->
  95.     ->         set xtext = xtextcopy;  # restore backup
  96.     ->         WHILE length(xtext) > 0 DO
  97.     ->         CALL get_node_content(xtext, 'slice', slice_text, useless1, xtext);
  98.     ->         IF length(slice_text) >0 THEN
  99.     ->                 CALL get_node_content(slice_text, 'time', time_text, useless1, slice_text);
  100.     ->                 select TIMESTAMPADD(SECOND,time_diff,time_text) into time_shift;
  101.     ->                 INSERT INTO ewise_slice VALUES (default, x_device_id, time_shift);
  102.     ->
  103.     ->                 SELECT LAST_INSERT_ID() INTO new_slice_id;
  104.     ->
  105.     ->                 WHILE length(slice_text) > 0 DO
  106.     ->                         set x_msmnt_type_id = 0;
  107.     ->                         CALL get_first_node_name(slice_text, msmnt_tag);
  108.     ->                         CALL get_node_content(slice_text, msmnt_tag, value_text, useless1, slice_text);
  109.     ->                         IF length(msmnt_tag) >0 THEN
  110.     ->                                 SELECT ewise_msmnt_type.msmnt_type_id FROM ewise_msmnt_type WHERE ewise_msmnt_type.msmnt_type_code=LEFT(msmnt_tag,8) INTO x_msmnt_type_id;
  111.     ->                                 IF (x_msmnt_type_id = 0) THEN
  112.     ->                                         INSERT INTO ewise_msmnt_type VALUES (default, LEFT(msmnt_tag, 8), NULL, NULL);
  113.     ->                                         SELECT LAST_INSERT_ID() INTO x_msmnt_type_id;
  114.     ->                                 END IF;
  115.     ->                          # Find out what the value being inserted into the msmnt table is
  116.     ->                          # select default, new_slice_id, x_msmnt_type_id, value_text;
  117.     ->                                 INSERT INTO ewise_slice_msmnt VALUES (default, new_slice_id, x_msmnt_type_id, value_text);
  118.     ->                         END IF;
  119.     ->
  120.     ->                 END WHILE;
  121.     ->
  122.     ->          select slice_id from ewise_slice where device_id = x_device_id order by slice_id DESC LIMIT 1 into slice1;
  123.     ->          select slice_id from ewise_slice where device_id = x_device_id order by slice_id DESC LIMIT 1,1 into slice2;
  124.     ->
  125.     ->          select slice_timestamp from ewise_slice where slice_id = slice1 INTO time1;
  126.     ->          select slice_timestamp from ewise_slice where slice_id = slice2 INTO time2;
  127.     ->
  128.     ->          SELECT TIMESTAMPDIFF(MINUTE,time2,time1) into slicetimediff;
  129.     ->          if (slicetimediff IS NULL) then
  130.     ->                  set slicetimediff = 1;
  131.     ->          end if;
  132.     ->
  133.     ->  SELECT slice1,time1,slice2,time2,slicetimediff;
  134.     ->
  135.     ->          select egw_con_flowrate from egw_constants where egw_con_device_id = x_device_id INTO flowrate;
  136.     ->          select brine from egw_constants where egw_con_device_id = x_device_id INTO brinefactor;
  137.     ->
  138.     ->  select flowrate,brinefactor;
  139.     ->
  140.     ->          select msmnt_value from ewise_slice_msmnt where slice_id = slice1 AND msmnt_type_id = '1' INTO t1_1;
  141.     ->          select msmnt_value from ewise_slice_msmnt where slice_id = slice1 AND msmnt_type_id = '2' INTO t2_1;
  142.     ->          select msmnt_value from ewise_slice_msmnt where slice_id = slice1 AND msmnt_type_id = '3' INTO c1_1;
  143.     ->
  144.     ->          select msmnt_value from ewise_slice_msmnt where slice_id = slice2 AND msmnt_type_id = '1' INTO t1_2;
  145.     ->          select msmnt_value from ewise_slice_msmnt where slice_id = slice2 AND msmnt_type_id = '2' INTO t2_2;
  146.     ->          select msmnt_value from ewise_slice_msmnt where slice_id = slice2 AND msmnt_type_id = '3' INTO c1_2;
  147.     ->
  148.     ->          SELECT ABS(t2_1 - t1_1) * flowrate * brinefactor * c1_1 INTO BTUHr1;
  149.     ->          SELECT ABS(t2_2 - t1_2) * flowrate * brinefactor * c1_2 INTO BTUHr2;
  150.     ->
  151.     ->  select BTUHr1,BTUHr2;
  152.     ->
  153.     ->          IF (BTUHr2 IS NULL) then
  154.     ->                  set BTUHr2 = 0;
  155.     ->          end if;
  156.     ->
  157.     ->          SELECT (BTUHr1+BTUHr2)/2*(slicetimediff/60) INTO btucalc;
  158.     ->
  159.     ->          select id from ewise_cumulative_btus where device_id = x_device_id order by id desc LIMIT 1,1 INTO lastbtuid;
  160.     ->
  161.     ->  select lastbtuid;
  162.     ->
  163.     ->          select ABS(cumul_btus) from ewise_cumulative_btus where id = lastbtuid INTO lastbturead;
  164.     ->
  165.     ->          if (lastbturead IS NULL) then
  166.     ->                  set lastbturead = 0;
  167.     ->          end if;
  168.     ->
  169.     ->  select lastbturead;
  170.     ->
  171.     ->          select (ABS(btucalc) + ABS(lastbturead)) INTO lastcurbtus;
  172.     ->
  173.     ->          insert into ewise_cumulative_btus (device_id,curbtus,cumul_btus) values(x_device_id,btucalc,lastcurbtus);
  174.     ->
  175.     ->  select x_device_id,btucalc,lastcurbtus;
  176.     ->
  177.     ->         END IF;
  178.     ->
  179.     ->         END WHILE;
  180.     ->
  181.     ->         #Delete the data row
  182.     ->         DELETE FROM ewise_raw_data_in WHERE ewise_raw_data_in.raw_id=x_id;
  183.     ->
  184.     -> # DROP TABLE temp_slice;
  185.     -> END LOOP main_loop;
  186.     -> END
  187.     ->
  188.     -> $$
  189. Query OK, 0 rows affected (0.00 sec)
  190.  
  191. mysql> DELIMITER ;
  192. mysql>
  193. mysql> use egwtest;
  194. Database changed
  195. mysql> call parse_rawtest2(); #Performed on 5 records
  196.  
  197. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  198. | slice1 | time1               | slice2 | time2               | slicetimediff | BTUHr1 | BTUHr2 | btucalc | lastbtuid | lastbturead | x_device_id | btucalc | lastcurbtus |
  199. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  200. |      6 | 2010-03-18 15:25:36 |      5 | 2010-03-18 15:29:36 |            -4 |  20370 |  20370 |   -1358 |         4 |         678 |          11 |   -1358 |        2036 |
  201. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  202. 1 row in set (0.01 sec)
  203.  
  204. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  205. | slice1 | time1               | slice2 | time2               | slicetimediff | BTUHr1 | BTUHr2 | btucalc | lastbtuid | lastbturead | x_device_id | btucalc | lastcurbtus |
  206. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  207. |      7 | 2010-03-18 15:26:36 |      6 | 2010-03-18 15:25:36 |             1 |  20370 |  20370 |     339 |         5 |         848 |          11 |     339 |        1187 |
  208. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  209. 1 row in set (0.04 sec)
  210.  
  211. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  212. | slice1 | time1               | slice2 | time2               | slicetimediff | BTUHr1 | BTUHr2 | btucalc | lastbtuid | lastbturead | x_device_id | btucalc | lastcurbtus |
  213. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  214. |      8 | 2010-03-18 15:27:36 |      7 | 2010-03-18 15:26:36 |             1 |  20370 |  20370 |     339 |         6 |        2036 |          11 |     339 |        2375 |
  215. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  216. 1 row in set (0.06 sec)
  217.  
  218. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  219. | slice1 | time1               | slice2 | time2               | slicetimediff | BTUHr1 | BTUHr2 | btucalc | lastbtuid | lastbturead | x_device_id | btucalc | lastcurbtus |
  220. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  221. |      9 | 2010-03-18 15:28:36 |      8 | 2010-03-18 15:27:36 |             1 |  20370 |  20370 |     339 |         7 |        1187 |          11 |     339 |        1526 |
  222. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  223. 1 row in set (0.08 sec)
  224.  
  225. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  226. | slice1 | time1               | slice2 | time2               | slicetimediff | BTUHr1 | BTUHr2 | btucalc | lastbtuid | lastbturead | x_device_id | btucalc | lastcurbtus |
  227. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  228. |     10 | 2010-03-18 15:29:36 |      9 | 2010-03-18 15:28:36 |             1 |  20370 |  20370 |     339 |         8 |        2375 |          11 |     339 |        2714 |
  229. +--------+---------------------+--------+---------------------+---------------+--------+--------+---------+-----------+-------------+-------------+---------+-------------+
  230. 1 row in set (0.10 sec)
  231.  
Mar 22 '10 #8
dbrewerton
115 New Member
Oddly enough, by looking at what I posted I realized it was referencing the 2nd id back because of a quirk in the code. Its working now so thank you for bearing with me :)
Mar 22 '10 #9
dbrewerton
115 New Member
I have a related but different question to ask so I'll start a new post.
Mar 22 '10 #10
dbrewerton
115 New Member
code_green, please check out my posting:

http://bytes.com/topic/mysql/answers...us#post3555477

Many thanks :)
Mar 22 '10 #11

Sign in to post your reply or Sign up for a free account.

Similar topics

28
2389
by: Alf P. Steinbach | last post by:
A few days ago I posted an "Hello, world!" tutorial, discussed in <url: http://groups.google.no/groups?threadm=41ba4c0a.76869078@news.individual.net>. As I wrote then: <quote> because there...
6
1718
by: Kieran Benton | last post by:
Hi, I have quite a lot of metadata in a WinForms app that I'm currently storing within a hashtable, which is fine as long as I know the unique ID of the track (Im storing info on media files). Up...
4
5598
by: xiko tripa | last post by:
Hi. I have an apsx page with a Panel inside. The panel has his properties Width and Height set to 590 and 390 respectively. I call a function to make up an table inside this panel. That table...
2
1728
by: Jax | last post by:
Say for example a user of my website makes a selection on the site and I want to store that value for use on a later page what is the best way to do that? My only method at the moment that I know...
22
2510
by: guitarromantic | last post by:
Hey everyone, I run a site with staff-submitted reviews, and most of them are written by one author. However, we also do "multiple" reviews. Up until now I just had a userid for a 'Multiple'...
10
7092
by: John Salerno | last post by:
If I want to have a list like this: where the first part of each tuple is a variable name and the second part is a label for the user to see, such as a form like this: First Name: ________...
20
4006
by: tshad | last post by:
Using VS 2003, I am trying to take a class that I created to create new variable types to handle nulls and track changes to standard variable types. This is for use with database variables. This...
1
29312
weaknessforcats
by: weaknessforcats | last post by:
C++: The Case Against Global Variables Summary This article explores the negative ramifications of using global variables. The use of global variables is such a problem that C++ architects have...
41
2494
by: none | last post by:
Hello, IIRC, I once saw an explanation how Python doesn't have "variables" in the sense that, say, C does, and instead has bindings from names to objects. Does anyone have a link? Thanks, ...
1
1227
by: makbot | last post by:
Hi I have a 5x5 'grid' of square buttons and need to store the buttons the user clicks on (in order) so that i can ask them to recall the sequence later. I think this requires server side...
0
7242
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
7138
by: Hystou | last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can...
0
7353
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
7075
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
7508
tracyyun
by: tracyyun | last post by:
Dear forum friends, With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each...
1
5063
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new...
0
4737
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and...
0
1572
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
1
781
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.