String.Format codes for DateTime etc


HH = 24-hour clock. hh=12-hour = tt=am/pm


yyyy = 4-digit year.

Posted in Uncategorized | Leave a comment

Clone programming steps

— list products that might need to be programmed.

SELECT name,revision, product_id FROM qs_products where name like ‘277000-200-%’

— list current programming steps

select,p.revision,steps.* from [dbo].[ACA_swprg_programming_steps] steps
INNER JOIN qs_products p ON p.product_id = steps.mes_product_id

— after updating the TO and FROM UIDs, clone the programming step.

INSERT INTO [dbo].[ACA_swprg_programming_steps]
[programming_step_id] = NewId()
FROM [dbo].[ACA_swprg_programming_steps]
WHERE [mes_product_id] = ‘FC643AFA-6FCA-405A-867C-A4F22A17C8F0′

— after updating the TO and FROM UIDs, clone the programmed parts.

INSERT INTO [dbo].[ACA_swprg_software_parts]
software_part_id=NewID(), programming_step_id=’D076393C-A968-4D50-9A4F-ED80007BACD4′, part_number, CRC, slot, tracked, storage_location, bin_filename, cfg_filename, mes_component_id=NULL
WHERE [programming_step_id]=’9CB96871-0F82-4194-81FB-C22DF950CA57’

–finally, populate the component_ids. No TO/FROM to change; this populates only the component_ids which should not be NULL.

UPDATE [dbo].[ACA_swprg_software_parts]
SET [ACA_swprg_software_parts].mes_component_id=cpn.component_id
FROM [dbo].[ACA_swprg_software_parts] sp
INNER JOIN [dbo].[ACA_swprg_programming_steps] prgstep ON prgstep.[programming_step_id] = sp.[programming_step_id]
INNER JOIN qs_components cpn ON cpn.product_id=prgstep.[mes_product_id] AND cpn.part_number = sp.[part_number]
WHERE sp.mes_component_id IS NULL

Posted in SQL Server | Leave a comment

Populate NULL component_ids from related tables

Needed to populate a new column in one table from a semi-related existing table, based on a value in another related table. I do this once in a blue moon and needed a refresher. Thanks, Pinal Dave, for your post with the syntax!

UPDATE [dbo].[ACA_swprg_software_parts]
SET [ACA_swprg_software_parts].mes_component_id=cpn.component_id
FROM [dbo].[ACA_swprg_software_parts] sp
INNER JOIN [dbo].[ACA_swprg_programming_steps] prgstep ON prgstep.[programming_step_id] = sp.[programming_step_id]
INNER JOIN qs_components cpn ON cpn.product_id=prgstep.[mes_product_id] AND cpn.part_number = sp.[part_number]
WHERE sp.mes_component_id IS NULL


Posted in SQL Server | Leave a comment

List of line endings

programmingScriptText += “\r\n”; //Windows style CRLF line ending.
//programmingScriptText += “\n\r”; // Nobody does this.
//programmingScriptText += “\r”; // Max style (CR) line ending.
//programmingScriptText += “\n”; //UNIX style (LF) line ending.

Posted in C#, Programming | Leave a comment

Paper mills make what?

Driving past a paper mill. Me, “What do you imagine they make there? Paper. They make paper in that building.” Gwen, “And smoke, they make smoke too!”

Posted in Parenting, Quote of the Day | Leave a comment

C# Make a SplitContainer dragbar visible to users

/// Given a SplitContainer,
/// set the color of its background to make the splitter dragbar visible to users.
/// Set the color of the splitter’s panels to the original color of the splitter,
/// to keep their backcolors consistent with the application.
public static void ConfigureSplitterForVisibility(System.Windows.Forms.SplitContainer sc)
System.Drawing.Color DEFAULT_SPLITTER_BACKCOLOR = System.Drawing.Color.LightSteelBlue;
System.Drawing.Color oldDefaultColor = sc.BackColor;
sc.Panel1.BackColor = oldDefaultColor;
sc.Panel2.BackColor = oldDefaultColor;

Posted in C#, Programming | Leave a comment

Returning errors codes in .Net apps

Posted in Uncategorized | Leave a comment

ClickOnce, Crystal Reports, and dependent projects

Problem causing failure to install ClickOnce project after adding a reference to another project:

ERROR DETAILSERROR DETAILS Following errors were detected during this operation. * [7/17/2017 12:01:25 PM] System.Deployment.Application.InvalidDeploymentException (RefDefValidation) – Reference in the manifest does not match the identity of the downloaded assembly TraceabilityService.exe.

This solved the problem for me. Relevant snippets follow:

The way to solve this was enabling ClickOnce Security Settings in all referenced projects as Ian explained here.

I believe this is the proper way to fix it when making a reference to another project under the same solution.

EDIT: Here is the relevant block from the link (emphasis mine):

For me, the way this was resolved was to ensure that all the Projects under the Solution which exposed the “Security Tab” in their “Project Properties” had the Option “Enable ClickOnce Security Settings” Ticked with the Option “This is a full trust application” Selected. This has to do with creating the Manifest correctly and the application will not install if these options are not set on all the Projects within the Solution that require it.

— more info from another resource —

ClickOnce Crystal Reports Redistributable Upgrade Issue
Rate this:

See more: .NETCrystalReportsClickOnce
I had an application that I created using Visual Studio 2010 which had a prerequisite of the 32 bit version of SAP Crystal Reports Runtime Engine for .NET Framework 4.0. (Appears to be version 13.0.2)

Now for the same set of customers I want to create an application using Visual Studio 2012 and have a prerequisite of the 32 bit version of SAP Crystal Reports Runtime Engine for .Net Framework. (Appears to be version 13.0.11)

My problem is when I attempt to install the the new program using ClickOnce, it fails if the previous version of the Crystal Reports redistributable is installed.

The error message I get is:
Hide Copy Code
Component Crystal Reports for .NET (Force 32bit) V3.0.11 has failed to install with the following error message:<br />
“Fatal error during installation. ”


And the install log file has a bunch of text, but ends with these last statements:
Hide Copy Code
…<br />
<Removed some text><br />
…<br />
Installing using command ‘C:\Windows\SysWOW64\msiexec.exe’ and parameters ‘ -I “C:\Users\katies\AppData\Local\Temp\VSD2952.tmp\CrystalReports_Force32Bit_13_11\CRRuntime_32bit_13_0_11.msi” -q ‘<br />
Will attempt to elevate process.<br />
Process exited with code 1603<br />
Status of package ‘Crystal Reports for .NET (Force 32bit) V3.0.11’ after install is ‘InstallFailed’


Note: The bootstrap package is one I had to manually create so that it would always install the 32 bit version of Crystal because my program targets 32 bit.

If I manually uninstall the previous Crystal Reports, the install works fine. Is there someway to get this to work automatically instead of having to force my users to manually uninstall before installing the new version? There must be a way to upgrade the version without these vague errors and manually uninstalling hassles. Does anyone have an idea for me to try?

—– Update —–
I posted this question both here and on SAP’s forums. I was told that Crystal 13.0.11 was a bad version, it’s been removed from their download site. I waited until the next version came out but I’m still have trouble. I also tested using the default bootstraps for the different versions of Crystal as prereqs on test programs. I still got the error so that suggests that the bootstrap that I made is not the problem. Perhaps this is a Microsoft ClickOnce bug? Or perhaps a Crystal issue when using ClickOnce? I still have not found a work around or explanation for my issue. Any advice would be appreciated.


J.R. Berard 14-Sep-15 17:18pm
I figured it out; there are a couple things that need to be done. Hope this helps others. Thanks to the references!!!

Reference #1:
Reference #2:

Changes to make (modified for clarity):
1. In the following folder, you will find a product.xml file.
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages\Crystal Reports 4.0\ or C:\Program Files (x86)\Microsoft Visual Studio 14.0\SDK\Bootstrapper\Packages\Crystal Reports for .NET Framework 4.0\
2. Open the product.xml file in Notepad (or any text editor).
3. Under the PackageFiles section, you will find 2 HomeSite URLs that point to the 2 deployment packages. Copy each URL into your web browser and manually download the packages.
3. Once the packages are downloaded, copy them to the same folder as the product.xml file (see #1 above).
4. Under Commands section of the product.xml, find the command element and change the Arguments attribute to ‘/quiet /passive UPGRADE=1’
5. Save the product.xml, recompile and perform the deployment. CR should be upgraded as expected.


I’m really hoping not to need this, but…

—initial conclusion—

I think this is a 32-bit vs 64-bit issue. The 64-bit distro of Crystal Reports is part of our corporate software store, but the 32-bit is not listed. I’m hoping the 32-bit distro of that client, with removing Crystal Reports as a dependent package in Project / Application configuration, removes the requirement of Crystal during install. That would allow a clean final update across all platforms.


My Advice for .NET Application Architecture and Design


Posted in C#, Linkdump, Programming, System/DB Administration | Leave a comment

Linkdump: Dynatrace- app monitoring with AI


Posted in Business Intelligence, Linkdump | Leave a comment

Google handoff to Site Reliability Engineering (SRE)

Part 1:

Part 2:

Part 3:


Posted in Uncategorized | Leave a comment