Archive
Sage Data Objects for .NET
Interop.SageDataObject111.SageDataObjects sdo =
new Interop.SageDataObject111.SageDataObjects();Interop.SageDataObject111.WorkSpace wsStock;
Interop.SageDataObject111.StockRecord srStock;
wsStock = sdo.GetWorkSpace();
string strACCData = @"C:Program FilesSageAccountsACCDATA";wsStock.Connect(strACCData, "MANAGER", "", "ThisIsUnique");
srStock = (StockRecord)wsStock.CreateObject("StockRecord");
srStock.MoveFirst();
object objDescription = (object)"DESCRIPTION"; string strDescription = srStock.Fields.Item(ref objDescription).Value.ToString();MessageBox.Show(strDescription);
wsStock.Disconnect();
Object model is still quite messy. Going to try to clean that up, and put some decent help files together.
Making a server-side click work when Javascript is disabled
public
static void MakeNoJSSafe(LinkButton lb,string alternativeURL){
string strJSLink = "javascript:__doPostBack(‘" + lb.ClientID + "’,”)";lb.Attributes.Add("onClick",strJSLink + ";this.href=’#’");
lb.Attributes["href"] = alternativeURL;
return;}
For me, an hour of trial-and-error, for you, a minutes cut & paste.
Please credit me, if you use this script.
Internet Voicemail service set live
Extract email address with SQL UDF
RETURNS @Results TABLE (Items nvarchar(4000))
AS
DECLARE @INDEX INT
DECLARE @SLICE nvarchar(4000)
— HAVE TO SET TO 1 SO IT DOESNT EQUAL Z
— ERO FIRST TIME IN LOOP
SELECT @INDEX = 1
— following line added 10/06/04 as null
— values cause issues
IF @String IS NULL RETURN
WHILE @INDEX !=0
— GET THE INDEX OF THE FIRST OCCURENCE OF THE SPLIT CHARACTER
SELECT @INDEX = CHARINDEX(@Delimiter,@STRING)
— NOW PUSH EVERYTHING TO THE LEFT OF IT INTO THE SLICE VARIABLE
IF @INDEX !=0
SELECT @SLICE = LEFT(@STRING,@INDEX – 1)
ELSE
SELECT @SLICE = @STRING
— PUT THE ITEM INTO THE RESULTS SET
INSERT INTO @Results(Items) VALUES(@SLICE)
— CHOP THE ITEM REMOVED OFF THE MAIN STRING
SELECT @STRING = RIGHT(@STRING,LEN(@STRING) – @INDEX)
— BREAK OUT IF WE ARE DONE
IF LEN(@STRING) = 0 BREAK
END
RETURN
END
( @TextContainingEmail varchar(1000) )
RETURNS varchar(1000)
AS
BEGIN
declare @retval varchar(1000)
select top 1 @retval=items from dbo.split(@TextContainingEmail,’ ‘)
where items like ‘%@%’
return @retval
END
Export Google Search Results to CSV
{
GoogleSearchService.GoogleSearchService gss =
new GoogleSearchService.GoogleSearchService(); string CSV = ""; try{
for(int i=170;i<10000;i+=10){
GoogleSearchService.GoogleSearchResult gsr = gss.doGoogleSearch("L3Pyyh5QFHKU740wXUu0/aBu17loGATB",SearchString,0,10,
false,"",false,"","",""); foreach(GoogleSearchService.ResultElement reSearch in gsr.resultElements){
CSV += reSearch.title.Replace(",","").Replace("n","") + ",";
CSV += reSearch.snippet.Replace(",","").Replace("n","") + ",";
CSV += reSearch.URL.Replace(",","").Replace("n","") + "n";
}
Debug.Write("Progress:" + i.ToString());
}
}
catch(Exception ex){
Debug.Write(ex.ToString());
}
FileStream fsOut =
new FileStream(FileName,FileMode.Create);StreamWriter swOut =
new StreamWriter(fsOut);swOut.Write(CSV);
fsOut.Close();
}
Writing a C# Application without a user interface
public
System.Timers.Timer tmrPoll = new System.Timers.Timer();[STAThread]
static void Main(){
VoiceMailMain vmmInstance =
new VoiceMailMain();vmmInstance.tmrPoll.Enabled =
true;vmmInstance.tmrPoll.Interval = 5000;
vmmInstance.tmrPoll.Elapsed +=
newSystem.Timers.ElapsedEventHandler(vmmInstance.tmrPoll_Tick);
System.Threading.Thread.CurrentThread.Suspend();
}
public
void tmrPoll_Tick(object sender, System.Timers.ElapsedEventArgs e){ … and magic happens … }
Simple when you know how!
No mapping between account names and security IDs
Uploading a file via a web service
string
strPath = HttpContext.Current.Request.ServerVariables["APPL_PHYSICAL_PATH"].ToString(); string strFileName = (Guid.NewGuid()).ToString()+".wav";FileStream fsWave =
new FileStream(strPath + strFileName,FileMode.Create);fsWave.Write(WaveData,0,WaveData.Length);
fsWave.Close();
Where WaveData was my Byte array.
Then when consuming this service, from an ASP.NET page, I used this code
HttpPostedFile hpfWave =
this.AudioFile.PostedFile; int intFileLen = hpfWave.ContentLength; byte[] bWaveData = new byte[intFileLen];hpfWave.InputStream.Read(bWaveData, 0, intFileLen);
strMessage = vmWebService.UploadAudio(bWaveData);
Where AudioFile is my Input type=file on the web page, and vmWebService was my webservice.
If you’re interested in knowing where this is leading, check out www.sms-txt.co.uk in a few days!