tag:blogger.com,1999:blog-15910060845894965812024-03-13T12:27:31.763-07:00AWGCodeS931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.comBlogger9125tag:blogger.com,1999:blog-1591006084589496581.post-60509602807981669032017-08-23T18:52:00.001-07:002017-08-23T18:52:55.015-07:00How to check if I have write permissions to an Oracle table<pre class="lang-sql prettyprint prettyprinted"><code><span class="kwd">SELECT</span><span class="pln"> </span><span class="kwd">CASE</span><span class="pln"> </span><span class="kwd">WHEN</span><span class="pln"> COUNT</span><span class="pun">(*)</span><span class="pln"> </span><span class="pun">></span><span class="pln"> </span><span class="lit">0</span><span class="pln"> </span><span class="kwd">THEN</span><span class="pln"> </span><span class="str">'YES'</span><span class="pln"> </span><span class="kwd">ELSE</span><span class="pln"> </span><span class="str">'NO'</span><span class="pln"> </span><span class="kwd">END</span><span class="pln"> </span><span class="kwd">AS</span><span class="pln"> PERMISSIONS </span><span class="kwd">FROM</span><span class="pln"> </span><span class="pun">(</span><span class="pln">
</span><span class="kwd">SELECT</span><span class="pln"> privilege </span><span class="kwd">FROM</span><span class="pln"> </span><span class="pun">(</span><span class="pln">
</span><span class="kwd">select</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="kwd">from</span><span class="pln"> dba_tab_privs
</span><span class="kwd">where</span><span class="pln"> </span><span class="pun">(</span><span class="pln">grantee </span><span class="pun">=</span><span class="pln"> </span><span class="str">'MY_USER_NAME'</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> grantee </span><span class="kwd">in</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">select</span><span class="pln"> granted_role </span><span class="kwd">from</span><span class="pln"> dba_role_privs
</span><span class="kwd">connect</span><span class="pln"> </span><span class="kwd">by</span><span class="pln"> prior granted_role </span><span class="pun">=</span><span class="pln"> grantee </span><span class="kwd">start</span><span class="pln"> </span><span class="kwd">with</span><span class="pln"> grantee </span><span class="pun">=</span><span class="pln"> </span><span class="str">'MY_USER_NAME'</span><span class="pun">)</span><span class="pln"> </span><span class="pun">)</span><span class="pln">
</span><span class="kwd">and</span><span class="pln"> owner </span><span class="pun">=</span><span class="pln"> </span><span class="str">'THE_OWNER'</span><span class="pln">
</span><span class="kwd">and</span><span class="pln"> table_name </span><span class="pun">=</span><span class="pln"> </span><span class="str">'THE_TABLE'</span><span class="pln"> </span><span class="kwd">and</span><span class="pln"> privilege </span><span class="pun">=</span><span class="pln"> </span><span class="str">'UPDATE'</span><span class="pln">
</span><span class="pun">)</span><span class="pln">
</span><span class="kwd">UNION</span><span class="pln">
</span><span class="kwd">SELECT</span><span class="pln"> PRIVILEGE </span><span class="kwd">FROM</span><span class="pln"> </span><span class="pun">(</span><span class="pln">
</span><span class="kwd">select</span><span class="pln"> </span><span class="pun">*</span><span class="pln"> </span><span class="kwd">from</span><span class="pln"> dba_sys_privs </span><span class="kwd">where</span><span class="pln"> grantee </span><span class="pun">=</span><span class="pln"> </span><span class="str">'MY_USER_NAME'</span><span class="pln"> </span><span class="kwd">or</span><span class="pln"> grantee </span><span class="kwd">in</span><span class="pln"> </span><span class="pun">(</span><span class="kwd">select</span><span class="pln"> granted_role </span><span class="kwd">from</span><span class="pln"> dba_role_privs
</span><span class="kwd">connect</span><span class="pln"> </span><span class="kwd">by</span><span class="pln"> prior granted_role </span><span class="pun">=</span><span class="pln"> grantee </span><span class="kwd">start</span><span class="pln"> </span><span class="kwd">with</span><span class="pln"> grantee </span><span class="pun">=</span><span class="pln"> </span><span class="str">'MY_USER_NAME'</span><span class="pun">)</span><span class="pln">
</span><span class="pun">)</span><span class="pln"> </span><span class="kwd">where</span><span class="pln"> privilege </span><span class="kwd">like</span><span class="pln"> </span><span class="str">'%UPDATE%'</span><span class="pln">
</span><span class="pun">);</span></code></pre>
<pre class="lang-sql prettyprint prettyprinted"><code><span class="pun">
</span></code></pre>
<pre class="lang-sql prettyprint prettyprinted"><code><span class="pun">Saving here in case ostensibly duplicate <a href="https://stackoverflow.com/questions/45803046/how-to-check-if-i-have-write-permissions-to-an-oracle-table">question</a> at S.O. is deleted.</span></code></pre>
S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-35158764416782544302015-12-20T04:41:00.000-08:002015-12-20T04:49:21.587-08:00Insertion Sort Code with CommentsCode showing state progress of insertion sort based on Ajax: The Definitive Guide O'Reilly 2008 p 267<br />
<pre>
package sort;
public class InsertionSort {
public static void main(String[] args) {
int[] nums = new int[] {9, 5, 3, 7, 3};
int[] res = new InsertionSort().insertionSort(nums);
printState(res, " the end", true);
}
public int[] insertionSort(int[] dataArray) {
int j, index;
for (int i = 0, il = dataArray.length; i < il; i++) {
index = dataArray[i];
j = i;
printState(dataArray, " ...before while: i=" + i + ", j="+j, false);
if (j == 0) {
System.out.println(" j==0 ");
} else {
System.out.println(" ...comparing " + dataArray[j - 1] + " > " + index);
}
while ((j > 0) && (dataArray[j - 1] > index)) {
dataArray[j] = dataArray[j - 1];
printState(dataArray, " ...in while: i=" + i + ", j="+j, false);
j -= 1;
if (j == 0) {
System.out.println(" j==0 ");
} else {
System.out.println(" ...comparing " + dataArray[j - 1] + " > " + index);
}
}
dataArray[j] = index;
printState(dataArray, " ...after while: i=" + i + ", j="+j, true);
}
return (dataArray);
}
private static void printState(int[] res, String msg, boolean endLine) {
for (int i =0, j=res.length; i < j; i++) {
System.out.print(res[i] + ((i<j-1)? ", ":""));
}
if (endLine)
System.out.println(msg);
else
System.out.print(msg);
}
}
</pre>
Output:
<pre>
9, 5, 3, 7, 3 ...before while: i=0, j=0 j==0
9, 5, 3, 7, 3 ...after while: i=0, j=0
9, 5, 3, 7, 3 ...before while: i=1, j=1 ...comparing 9 > 5
9, 9, 3, 7, 3 ...in while: i=1, j=1 j==0
5, 9, 3, 7, 3 ...after while: i=1, j=0
5, 9, 3, 7, 3 ...before while: i=2, j=2 ...comparing 9 > 3
5, 9, 9, 7, 3 ...in while: i=2, j=2 ...comparing 5 > 3
5, 5, 9, 7, 3 ...in while: i=2, j=1 j==0
3, 5, 9, 7, 3 ...after while: i=2, j=0
3, 5, 9, 7, 3 ...before while: i=3, j=3 ...comparing 9 > 7
3, 5, 9, 9, 3 ...in while: i=3, j=3 ...comparing 5 > 7
3, 5, 7, 9, 3 ...after while: i=3, j=2
3, 5, 7, 9, 3 ...before while: i=4, j=4 ...comparing 9 > 3
3, 5, 7, 9, 9 ...in while: i=4, j=4 ...comparing 7 > 3
3, 5, 7, 7, 9 ...in while: i=4, j=3 ...comparing 5 > 3
3, 5, 5, 7, 9 ...in while: i=4, j=2 ...comparing 3 > 3
3, 3, 5, 7, 9 ...after while: i=4, j=1
3, 3, 5, 7, 9 the end
</pre>S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-45028140901269565452014-07-25T02:02:00.002-07:002014-07-25T02:02:39.773-07:00ModelMapper Generic Spring IntegrationThe Spring integration provided by ModelMapper (http://modelmapper.org/user-manual/spring-integration/) as of now could be enhanced as below in order to provide capability to pass in a delegate interface to use during setup:<br />
<br />
<pre>
package ...;
import org.modelmapper.Provider;
import org.modelmapper.Provider.ProvisionRequest;
import org.modelmapper.internal.util.Assert;
import org.springframework.beans.factory.BeanFactory;
public class EnhancedModelMapperSpringIntegration {
private static class SpringProvider<S, D> implements
Provider<D> {
BeanFactory beanFactory;
SourceBeanFactoryMapper<S, D> sourceBeanFactoryMapper;
SpringProvider(BeanFactory beanFactory, SourceBeanFactoryMapper<S, D> sourceBeanFactoryMapper) {
this.beanFactory = beanFactory;
this.sourceBeanFactoryMapper = sourceBeanFactoryMapper;
}
@Override
public D get(ProvisionRequest<D> request) {
return sourceBeanFactoryMapper.map((S)request.getSource(), beanFactory);
}
}
public static <S, D> Provider<?> fromSpring(BeanFactory beanFactory, SourceBeanFactoryMapper<S, D> sourceBeanFactoryMapper) {
Assert.notNull(beanFactory);
return new SpringProvider(beanFactory, sourceBeanFactoryMapper);
}
}
package ...;
import org.springframework.beans.factory.BeanFactory;
public interface SourceBeanFactoryMapper<S, D> {
D map(S s, BeanFactory beanFactory);
}
</pre>S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-81067257510040052152014-01-15T06:52:00.000-08:002014-01-15T06:52:54.403-08:00SQL Server to Oracle DDL BeanShell ScriptI couldn't find any script to convert a relatively large SQL Server Database (just tables) to Oracle SQL DDL in a way that all the identifiers (table names, column names, constraint names) were reduced to Oracle's max of 30 characters. So I came up with the following. The original identifiers had underscores to separate words, the script choose the last or second to last underscore-separated word and appends a number for uniqueness. Run in jEdit.<br />
<br />
<br />
<Pre>
// This is a jEdit macro
// only run once on output of SQL Server Generate Scripts wizard with
// all options set False other than Script -Create, -USE DATABASE, -Foreign Keys, -Primary Keys
// Save as .bsh and place in %AppData%/jEdit/macros
import java.util.regex.*;
SearchAndReplace.setSearchString("\\[(.+?)\\]");
SearchAndReplace.setReplaceString("$1");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(true);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("varchar(max)");
SearchAndReplace.setReplaceString("CLOB");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(false);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("(\\s)ASC(\\b)");
SearchAndReplace.setReplaceString("$1$2");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(true);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("SET ANSI_NULLS ON\\nGO\\nSET QUOTED_IDENTIFIER ON\\nGO\\n");
SearchAndReplace.setReplaceString("");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(true);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("GO");
SearchAndReplace.setReplaceString(";");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(false);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("WITH \\([^\\)]+\\)");
SearchAndReplace.setReplaceString("");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(true);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("CLUSTERED");
SearchAndReplace.setReplaceString("");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(false);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString(" ON PRIMARY");
SearchAndReplace.setReplaceString("");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(false);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString(" WITH CHECK");
SearchAndReplace.setReplaceString("");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(false);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("tinyint");
SearchAndReplace.setReplaceString("int");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(false);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
SearchAndReplace.setSearchString("ALTER TABLE .+? CHECK CONSTRAINT .+?\\n.+?\\n");
SearchAndReplace.setReplaceString("");
SearchAndReplace.setBeanShellReplace(false);
SearchAndReplace.setWholeWord(false);
SearchAndReplace.setIgnoreCase(true);
SearchAndReplace.setRegexp(true);
SearchAndReplace.setSearchFileSet(new CurrentBufferSet());
SearchAndReplace.replaceAll(view);
String text = textArea.getText();
String pattern = "ADD\\s+CONSTRAINT FK_\\w+?\\sFOREIGN KEY";
Matcher matcher = Pattern.compile(pattern).matcher(text);
StringBuffer sb = new StringBuffer();
int i = 1;
while (matcher.find()) {
matcher.appendReplacement(sb, "ADD CONSTRAINT FK_" + (i++) + " FOREIGN KEY");
}
matcher.appendTail(sb);
text = sb.toString();
pattern = "CREATE\\s+TABLE (\\w+?)\\(";
matcher = Pattern.compile(pattern).matcher(text);
int i = 1;
ArrayList toReplace = new ArrayList();
ArrayList replacements = new ArrayList();
while (matcher.find()) {
if (matcher.group(1).length() >= 30) {
String[] split = matcher.group(1).split("_");
int splitIndex = split.length-2 < 0 ? 0 : split.length-2;
String replacement = split[splitIndex] + (i++);
toReplace.add(matcher.group(1));
replacements.add(replacement);
}
}
for (int j = 0; j < toReplace.size(); j++) {
text = text.replaceAll(toReplace.get(j), replacements.get(j));
}
pattern = "\\W(\\w+?)\\sint\\sNOT\\sNULL";
matcher = Pattern.compile(pattern).matcher(text);
i = 1;
toReplace = new ArrayList();
replacements = new ArrayList();
while (matcher.find()) {
if (matcher.group(1).length() >= 30) {
String[] split = matcher.group(1).split("_");
int splitIndex = split.length-1 < 0 ? 0 : split.length-1;
String replacement = split[splitIndex] + (i++);
toReplace.add(matcher.group(1));
replacements.add(replacement);
}
}
for (int j = 0; j < toReplace.size(); j++) {
text = text.replaceAll(toReplace.get(j), replacements.get(j));
}
textArea.setText(text);
</Pre>S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-9974495269396155442012-10-22T06:20:00.002-07:002012-10-22T06:20:41.139-07:00Sample PowerShell .wsp Install Script<pre style="background-color: #c8c8c8; color: #000066; font-size: 0.95em; padding: 4px;">
Function EndPause {
Write-Host "Press any key to continue ..."
$x = $host.UI.RawUI.ReadKey("NoEcho,IncludeKeyDown")
}
$x = [System.Reflection.Assembly]::LoadWithPartialName(”Microsoft.SharePoint”)
$siteUrlDev = "http://devsite/testsite/"
$siteUrlStg = "http://stgsite/testsite/"
$siteUrlProd = "http://prodsite/testsite/"
Try
{
$spSite = new-object Microsoft.SharePoint.SPSite($siteUrlStg)
}
Catch {}
Try
{
$spSite = new-object Microsoft.SharePoint.SPSite($siteUrlDev)
}
Catch {}
Try
{
$spSite = new-object Microsoft.SharePoint.SPSite($siteUrlProd)
}
Catch {}
if ($spSite -eq $null)
{
"ERROR ------------ Site not found. Quitting."
EndPause
exit
}
$spWeb = $spSite.OpenWeb()
$spList = $spWeb.Lists["ListName"]
if ($spList -eq $null)
{
"ERROR -------- ListName list not found. Quitting"
EndPause
exit
}
else
{
{ListName list found}
}
If (!$spList.Fields.ContainsField("newdatefield"))
{
# $spList.Fields.Add("test","DateTime",0)
$dateField = $spList.Fields.CreateNewField("DateTime","newdatefield")
$dateField.DisplayFormat = [Microsoft.SharePoint.SPDateTimeFieldFormatType]::DateOnly
$dateField.Required = $false;
$spList.Fields.Add($dateField)
"Added newdatefield field"
}
else
{
"newdatefield field already added. This is fine."
}
if (Test-Path ("MySPApp.wsp"))
{
Set-Alias -Name stsadm -Value $env:CommonProgramFiles"\Microsoft Shared\Web Server Extensions\12\BIN\STSADM.EXE"
Write-Host "Upgrading solution to 9.0.1" -foregroundcolor green
&stsadm -o upgradesolution -name "MySPApp.wsp" -filename "MySPApp.wsp" -immediate -allowGacDeployment -allowCasPolicies
&stsadm -o execadmsvcjobs
}
else
{
"MySPApp.wsp file missing. Quitting"
EndPause
exit
}
EndPause
</pre>S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-23322893585467632732012-09-28T12:04:00.002-07:002012-10-19T06:34:11.830-07:00Printing Paginated HTML PageUpdate: To just prevent new page on TR breaks add the following style (Note the DOCTYPE!):
<!DOCTYPE html>
<!-- saved from url=(0016)http://localhost -->
<html><head>
<style type="text/css">
@media print
{
tr {page-break-inside:avoid}
}
</style>
<pre style="background-color: #c8c8c8; color: #000066; font-size: 0.95em; padding: 4px;"><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<style type="text/css">
/*@media screen print 'print' not working for print preview
{
}*/
table.splitForPrint { width:681 ; /*assuming 816px for Letter size minus 1.5in margin or approx 135px*/
border: solid 1px #000000;border-bottom: 0; /*turn off bottom since last
row will have bottom border*/border-collapse: collapse;
font-family: sans-serif;font-style: normal;
font-weight: normal;font-size: 12px;
}
table.splitForPrint td {width:227/*Must divide total width by columns*/; border-bottom: solid 1px #000000;padding:4px;}
table.splitForPrint th {border-bottom: solid 1px #000000; background-color: "AliceBlue";padding:4px;}
</style>
<script src="jquery-1.7.1.min.js"></script>
<script type="text/javascript">
//adapted from http://code.google.com/p/wkhtmltopdf/issues/detail?id=168
$(document).ready(function () {
$('table.splitForPrint').each(function(i, tabela){ // this to set 'this' context to table
var trlength = $('tbody tr', tabela).length;
//850:assuming 8.85 in. reserved for tbl height based on 96DPI(http://auctionrepair.com/pixels.html)
var maxtrpxperpage = 950;
var trsleft = trlength;
var pageno = 1;
var ultimo = $(tabela); //$('table.splitForPrint').first();
while (trsleft > 0) {
var copy = ultimo.clone();
var debugmessage = "<br>starting while loop<br>";
var numtrsremovedfromcurrent = 0;
var curtrscount = $('tbody tr', copy).length;
var curtbltrscount = 0;
//get in reverse order
$($('tbody tr', ultimo).get().reverse()).each(function(i, tr){
if (ultimo.height() > maxtrpxperpage)
{
$(tr).remove();
numtrsremovedfromcurrent++;
}
else
{
return false;
}
});
curtbltrscount = curtrscount - numtrsremovedfromcurrent;
$('tbody tr', copy).each(function(i, tr){
if (i < curtbltrscount) {
$(tr).remove();
}
});
if (copy.find("td").length > 0) //don't insert a table with only a header
{
copy.insertAfter(ultimo);
$("<div style='page-break-before:always'>Page " + (++pageno) + "</div>").insertAfter(ultimo);
/* var heights = $.map( ultimo.find("tr"), function(el){ return $(el).outerHeight() + "|"
+ $(el).find("td").eq(1).text()
+ "/" + $(el).find("td").height()
}).join(", ");
$("<div style='font-family: sans-serif;font-size:15px;page-break-before:always'>blosah" + trlength
+ ", heights: " + heights
+ "<br>debugmsg: " + debugmessage
+ "--trs:" + ultimo.find("tr").length + "; window height: " + $(window).height()
+ "; document height: " + $(document).height()
+ "; table height: " + ultimo.height()
+ "; table width: " + ultimo.width()
+ "</div>").insertAfter(ultimo);
*/
}
//copy.css('page-break-before', 'always');
ultimo = copy;
trsleft -= curtbltrscount;
}
});
});
</script>
</head>
<body>
<table class="splitForPrint" ><thead><tr><th>Header1###<th>Header2</th><th>Another header here</th></tr></thead>
<tbody>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
<tr>
<td>HDK 0 ksdTkskdjf Yte</td>
<td>Hkekrulc=kS kdkurlkREK TSDNBKS LEKFLS =58349</td>
<td>TyikmeskkVkslkjdsk ^ YIE</td>
</tr>
<tr>
<td>Vaslkjds</td>
<td>Xdk ks</td>
<td>LE,X</td>
</tr>
<tr>
<td>TT EESE23 4443</td>
<td>TIE -;Nksj kerkdVkm</td>
<td>Ekjs dksk TkdskX W5 TOI DKSJDFDKSLK DKSLK32</td>
</tr>
</tbody></table>
</body>
</pre>
S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-25000710089669804202012-08-20T05:29:00.003-07:002012-08-20T05:29:45.167-07:00Multi-App WSP Install.bat <pre style="background-color: #c8c8c8; color: #000066; font-size: 0.95em; padding: 4px;">@echo Deploy my.package.wsp
:usage - install.bat url1 url2 ...
@echo off
if "%1" == "" goto NoInputErrorMessage
setlocal
set SPAdminTool=%CommonProgramFiles%\Microsoft Shared\web server extensions\12\BIN\stsadm.exe
@echo on
"%SPAdminTool%" -o addsolution -filename my.package.wsp
"%SPAdminTool%" -o execadmsvcjobs
"%SPAdminTool%" -o deploysolution -name "my.package.wsp" -immediate -allowGacDeployment -allowCasPolicies -force
"%SPAdminTool%" -o execadmsvcjobs
@echo off
:LOOP
IF "X%1" == "X" GOTO LOOPDONE
echo Deploying solution to %1
@echo on
"%SPAdminTool%" -o activatefeature -name myappfeature -url %1
@echo off
SHIFT
GOTO LOOP
:LOOPDONE
pause
echo The batch file is complete.
GOTO ENDFINAL
:NoInputErrorMessage
@ECHO Please enter these arguments: Application URLs separated by spaces
@echo Sample command: Install.bat https://myapp1 https://myapp2
:ENDFINAL</pre>S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-32394294272709159702012-08-15T13:25:00.000-07:002012-08-22T07:39:16.328-07:00Get Matching DLLs in VS Solution<pre style="background-color: #c8c8c8; color: #000066; font-size: 0.95em; padding: 4px;">Option Explicit
' need args for (0) SolutionDir (1) ilmerge executable (2) .snk file (3) /ver (4) output dll (5) Solution Project dir
'(6) primary assembly file name e.g. "mylib.dll" (7) pubkey string of target DLLs e.g. "abcd123456787651"
'Ex: c:\Temp\>CreateMABat.vbs "C:\MySolution\" "c:\ilmerge\ilmerge.exe" "C:\MySolution\MyMainProject\MyNamespace.snk" 1.0.0.0 "c:\MySolution\MyMainProject\Dlls\CombinedLibrary.dll" "c:\MySolution\MyMainProject\" MyFirstDep.dll abcd123456787651
Dim args, pubKeyStr, matchingDLLs, objFSO, objShell, DictDlls
Dim oMergeBat
Dim oFS
Set args = WScript.Arguments
pubKeyStr = args(7)
matchingDLLs = GetNewDllsThatMatchKey (args(0), pubKeyStr, args(6))
Set oFS = CreateObject("Scripting.FileSystemObject")
Set oMergeBat = oFS.CreateTextFile(args(5) + "MergeAssemblies.bat", true)
oMergeBat.WriteLine("@ECHO OFF")
oMergeBat.WriteLine("@ECHO This script is generated by createMergeAssemblies.vbs")
oMergeBat.WriteLine("")
oMergeBat.WriteLine("@ECHO ...starting the merge program")
oMergeBat.WriteLine("@ECHO ...")
oMergeBat.WriteLine("@ECHO ...")
oMergeBat.WriteLine("")
oMergeBat.WriteLine("""" + args(1) + """ /ndebug /t:library /keyfile:""" + args(2) + """ /ver:" + args(3) + " /out:""" + args(4) + """ " + matchingDLLs)
oMergeBat.WriteLine("")
oMergeBat.WriteLine("@ECHO ...merging process complete")
oMergeBat.WriteLine("")
oMergeBat.WriteLine("Pause")
'WScript.Echo result
' given a root directory find all .dlls in subdirectories (exclude the root directory)
' for each dll found
' get its public key
' if it matches a pubkeyparamStr
' check dllsdict for key matching its filename
' if not found insert it
' if found
' compare its last modified date against existing file found
' if newer, replace dict entry
Function GetNewDllsThatMatchKey(ByVal filePath, ByVal snKey, ByVal firstDll)
Dim i, a, resultStr
Set dictDlls = CreateObject("Scripting.Dictionary")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objShell = WScript.CreateObject("WScript.Shell")
GetDictOfDlls filePath, "DLL"
resultStr = """" & dictDlls.Item(firstDll) & """"
dictDlls.Remove(firstDll)
a = dictDlls.Keys
For i=0 to dictDlls.Count-1
resultStr = resultStr & " """ & dictDlls.Item(a(i)) & """"
' WScript.Echo a(i)
' WScript.Echo dictDlls.Item(a(i))
Next
GetNewDllsThatMatchKey = resultStr
End Function
Sub GetDictOfDlls(ByVal strDirectory, ByVal strExtSought)
Dim objFolder, objSubFolder, objFile, filePubKey, objKeyFile
Set objFolder = objFSO.GetFolder(strDirectory)
objShell.CurrentDirectory = strDirectory
For Each objFile in objFolder.Files
' WScript.Echo objFile.Path
If Right(Ucase(objFile.Path),Len(strExtSought)+1) = "." & strExtSought Then
filePubKey = GetFilePubKeyStr(objFile.Name)
If pubKeyStr = filePubKey Then
If dictDlls.Exists(objFile.Name) = True Then
'WScript.Echo "Exists " & objFile.Path
Set objKeyFile = objFSO.GetFile(dictDlls.Item(objFile.Name))
'WScript.Echo "date is " & objKeyFile.DateLastModified & " compared to " & objFile.DateLastModified
If objKeyFile.DateLastModified < objFile.DateLastModified Then
dictDlls.Item(objFile.Name) = objFile.Path
End If
Else
dictDlls.Add objFile.Name, objFile.Path
End If
'WScript.Echo filePubKey
End If
End If
Next
For Each objSubFolder in objFolder.SubFolders
GetDictOfDlls objSubFolder.Path, strExtSought
Next
End Sub
Function GetFilePubKeyStr(ByVal fileName)
dim snExe, snCmd, fullCmd, strLine, objExecObject
snExe = """C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Bin\sn.exe"""
snCmd = "cmd /c """ & snExe & """ -T "
fullCmd = snCmd & fileName
Set objExecObject = objShell.Exec(fullCmd)
Do While Not objExecObject.StdOut.AtEndOfStream
strLine = objExecObject.StdOut.ReadLine()
'Wscript.Echo strLine
If InStr(strLine, "Public key token is ") then
GetFilePubKeyStr = Right(strLine,16)
'Wscript.Echo Right(strLine,16)
end if
Loop
Do While Not objExecObject.StdErr.AtEndOfStream
Wscript.Echo objExecObject.StdErr.ReadLine()
Loop
End Function
</pre>
S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0tag:blogger.com,1999:blog-1591006084589496581.post-44942617673829507102012-07-30T20:39:00.002-07:002012-07-30T20:39:53.679-07:00Code DataGridView with Drop-downs from DataTableThis is how to create a DataGridView in code from a DataTable and featuring dropdown columns. Simply create a new Windows Form project and replace the form.cs code with the following:
<pre style="background-color: #c8c8c8; color: #000066; font-size: 0.95em; padding: 4px;">
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace WindowsFormsApplication2
{
public partial class Form1 : Form
{
BindingSource bindingsource1 = new BindingSource();
BindingSource productbs = new BindingSource();
System.Windows.Forms.DataGridView dataGridView1;
DataTable dt;
public Form1()
{
dt = new DataTable();
var dcblah = new DataColumn("blah");
dt.Columns.Add(dcblah);
dt.Columns.Add(new DataColumn("2"));
DataRow dr = dt.NewRow();
dr["blah"] = "bii";
dr["2"] = "boo";
dt.Rows.Add(dr);
DataRow drd2 = dt.NewRow();
drd2["blah"] = "boo";
drd2["2"] = "bii";
dt.Rows.Add(drd2);
this.SuspendLayout();
MyInitializeComponent();
InitializeComponent();
dataGridView1.AutoGenerateColumns = false;
var dtp = new DataTable();
dtp.Columns.Add(new DataColumn("Product_name"));
dtp.Columns.Add(new DataColumn("blah"));
var dr1 = dtp.NewRow();
dr1["blah"] = "boo";
dr1["Product_name"] = "a product boo";
var dr2 = dtp.NewRow();
dr2["blah"] = "bii";
dr2["Product_name"] = "a xxproduct xxboo";
dtp.Rows.Add(dr1); dtp.Rows.Add(dr2);
productbs.DataSource = dtp;
dataGridView1.DataSource = bindingsource1;
bindingsource1.DataSource = dt;
foreach (DataColumn dc in dt.Columns)
{
((DataGridViewComboBoxColumn)dataGridView1.Columns[dc.ColumnName]).DataPropertyName = dc.ColumnName;
((DataGridViewComboBoxColumn)dataGridView1.Columns[dc.ColumnName]).DataSource = productbs;
((DataGridViewComboBoxColumn)dataGridView1.Columns[dc.ColumnName]).DisplayMember = "Product_name";
((DataGridViewComboBoxColumn)dataGridView1.Columns[dc.ColumnName]).ValueMember = "blah";
}
this.Controls.Add(dataGridView1);
}
private void MyInitializeComponent()
{
this.dataGridView1 = new System.Windows.Forms.DataGridView();
foreach (DataColumn dc in dt.Columns)
{
var col = new DataGridViewComboBoxColumn();
col.HeaderText = dc.ColumnName;
col.Name = dc.ColumnName;
dataGridView1.Columns.Add(col);
}
((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
this.dataGridView1.Location = new System.Drawing.Point(22, 97);
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.Size = new System.Drawing.Size(240, 150);
this.dataGridView1.TabIndex = 0;
}
private void Form1_Load(object sender, EventArgs e)
{
}
}
}
</pre>S931Coderhttp://www.blogger.com/profile/17609807805714986516noreply@blogger.com0