2021年8月27日 星期五

[^] (萬用字元 - 不相符的字元) (Transact-SQL)

 

[^] (萬用字元 - 不相符的字元) (Transact-SQL)


比對不在方括弧 [^] 之間指定範圍或集合內的任何單一字元。 這些萬用字元可用於包含模式比對 (如 LIKE 和 PATINDEX) 的字串比較中。

範例

簡單範例

下列範例會使用 [^] 運算子來尋找 Contact 資料表中前 5 個名字開頭都是 Al 且名字第三個字母不是 a 的人員。

-- Uses AdventureWorks SELECT TOP 5 FirstName, LastName FROM Person.Person WHERE FirstName LIKE 'Al[^a]%';

以下為結果集。

FirstName LastName --------- -------- Alex Adams Alexandra Adams Allison Adams Alisha Alan Alexandra Alexander

搜尋字元範圍

萬用字元集合可以包含單一字元或字元範圍,以及字元和範圍的組合。 下列範例會使用 [^] 運算子來尋找開頭並非字母或數字的字串。

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id FROM sys.columns WHERE name LIKE '[^0-9A-z]%';

以下為結果集。

object_id object_name name column_id --------- ----------- ---- --------- 1591676718 JunkTable _xyz 1


轉貼至: https://docs.microsoft.com/zh-tw/sql/t-sql/language-elements/wildcard-character-s-not-to-match-transact-sql?view=sql-server-ver15

2021年8月26日 星期四

[] (萬用字元-字元 (s) 以符合) (transact-sql)

 符合方括號 [ ] 之間所指定之指定範圍或集合內的任何單一字元。 這些萬用字元可用於包含模式比對 (如 LIKE  PATINDEX) 的字串比較中。

範例

簡單範例

下列範例會傳回開頭為字母 m 的名稱。 [n-z] 會指定第二個字母必須是範圍從 n 到 z 中的某一個字母。 百分比萬用字元 % 允許開頭為字元 3 的任何字元或沒有字元。 model 和 msdb 資料庫符合此原則。 master 資料庫不符合準則,並會從結果集中加以排除。


SELECT name FROM sys.databases WHERE name LIKE 'm[n-z]%';

以下為結果集。

name ----- model msdb


使用結合範圍和單一字元的集合

萬用字元集合可同時包含單一字元和範圍。 下列範例會使用 [] 運算子來尋找開頭為數字或一系列特殊字元的字串。

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id FROM sys.columns WHERE name LIKE '[0-9!@#$.,;_]%';

以下為結果集。

object_id object_name name column_id --------- ----------- ---- --------- 615673241 vSalesPersonSalesByFiscalYears 2002 5 615673241 vSalesPersonSalesByFiscalYears 2003 6 615673241 vSalesPersonSalesByFiscalYears 2004 7 1591676718 JunkTable _xyz 1


轉貼至: https://docs.microsoft.com/zh-tw/sql/t-sql/language-elements/wildcard-character-s-to-match-transact-sql?view=sql-server-ver15


2021年8月9日 星期一

須臾

 

須臾

維基百科,自由的百科全書

須臾,指很短的時間。早見於《荀子・勸學篇第一》:「吾嘗終日而思,不如須臾之所學也。」(我整天思考,也不及片刻學習的得著。)

漢字翻譯佛教經典時,則把時間單位 muhūrta 譯作須臾。根據佛教《僧祇律》中記載:「剎那者為一念, 二十念為一瞬, 二十瞬為一彈指,二十彈指為一羅預, 二十羅預為一須臾, 一日一夜為三十須臾。」所以一須臾等於0.8小時,換算為48分鐘或2880秒。

後來,又有某些書籍將其混入詞頭中,用來表達10^{{-15}},但現在更常使用「飛」或「飛母托」(相當於歐文的前輟 femto-),如 femtosecond 一般譯作「飛秒」。

轉貼自: https://zh.wikipedia.org/wiki/%E9%A0%88%E8%87%BE


2021年6月20日 星期日

Windows Task Scheduler 工作排程,程式中使用CreateOleObject操作Excel,出現錯誤訊息

Windows Task Scheduler 工作排程,程式中使用CreateOleObject操作Excel,出現錯誤訊息

Exception class name: 
  EOleException

Exception message: 
  The file name or path does not exist.
  The file is being used by another program.
  The workbook you are trying to save has the same name as a currently open workbook
  Microsoft Excel cannot access the file 'D:\xxxxxx'. There are several possible reasons:


手動建立資料夾
     for 64 bit Windows
  C:\Windows\SysWOW64\config\systemprofile\Desktop 

  for 32 bit Windows
  C:\Windows\System32\config\systemprofile\Desktop 


設定完成後再次登出,讓系統自動執行,接著出現以下錯誤訊息

Exception class name: 
  EOleSysError

Exception message: 
  The server process could not be started because the configured identity is incorrect. 
  Check the username and password, ProgID: "Excel.Application"

DCOM Config
  控制台 -> 系統管理工具  -> 元件服務 ,或是在命令提示字元輸入 dcomcnfg
  如果沒有看到Microsoft Excel Application選項,可以試著在命令提示字元裡操作
  MMC comexp.msc /32

後來試著在Security加入使用帳號

Identity 選用 The laumching user.



2021年5月3日 星期一

Excel Sheet Save as HTML File

 var XLApp, Sheet, Data, vWorkBook: OleVariant;
  vProcedureData:OleVariant;
  i, iTitleLine, iSheetIndex, iRowCount, iColCount:Integer;
  sSampleFile, sFileAlias, sFileName, sBeginCell, sEndCell, sFormulaBeginCell, sFormulaEndCell:String;
  sRange, sSheetName:String;
begin
  Result := '';
  vProcedureData := UnitLib.fn_Get_Data_Array_From_Attach_Procedure;
  iTitleLine := DM1.adoAutoMail.FieldByName('TitleLine').AsInteger;
  sSampleFile := DM1.adoAutoMail.FieldByName('SampleFile').AsString;
  sFileAlias := UnitLib.fn_Get_AutoMail_FieldValue('FileAlias');
  iSheetIndex := DM1.adoAutoMail.FieldByName('SheetIndex').AsInteger;
  //
  XLApp := CreateOleObject('Excel.Application');
  try
    XLApp.Visible := False;
    XLApp.DisplayAlerts := False; //關掉警告訊息
    XLApp.WorkBooks.Open(sSampleFile);
    vWorkBook := XLApp.Workbooks[1];
    Sheet := vWorkBook.Worksheets[iSheetIndex];
    //
    sSheetName := Sheet.Name;
    iRowCount := DM1.adoAttach_Procedure.RecordCount;
    iColCount := DM1.adoAttach_Procedure.FieldCount;
    sBeginCell := RefToCell(iTitleLine+1, 1);
    sEndCell := RefToCell(iTitleLine+iRowCount+1, iColCount);
    Sheet.Range[sBeginCell, sEndCell].Value := vProcedureData;
    //SubTotal Row
    for i := 0 to iColCount-1 do
    begin
      if fn_IsNumericField(DM1.adoAttach_Procedure.Fields[i]) then
      begin
        sBeginCell := RefToCell(iTitleLine+iRowCount+1, i+1);
        sEndCell := RefToCell(iTitleLine+iRowCount+1, i+1);
        sFormulaBeginCell := RefToCell(iTitleLine+1, i+1);
        sFormulaEndCell := RefToCell(iTitleLine+iRowCount, i+1);
        Sheet.Range[sBeginCell, sEndCell].Formula := '=SUM('+sFormulaBeginCell+':'+sFormulaEndCell+')';
      end;
    end;
    //Save as Xlsx
    sFileName := ChangeFileExt(sFileAlias, '.xlsx'); //xlOpenXMLWorkbook(51) Xlsx Format / xlHtml
    vWorkBook.SaveAs(sFileName);
    Result := sFileName;

    //Save Sheet to Html
    sFileName := ChangeFileExt(sFileAlias, '.html');
    sBeginCell := RefToCell(1, 1);
    sEndCell := RefToCell(iTitleLine+iRowCount+1, iColCount);
    sRange := sBeginCell+':'+sEndCell;
    vWorkBook.PublishObjects.Add(xlSourceRange, sFileName, sSheetName, sRange, xlHtmlStatic).Publish(True);
  finally
    if not VarIsEmpty(XLApp) then
    begin
      vWorkBook.Close;
      XLApp.Quit;
      XLAPP := Unassigned;
      Sheet := Unassigned;
      Application.ProcessMessages;
    end;
  end;
end;

2021年4月22日 星期四

Delphi Ole excel container, Save Xlsx file

 
uses ComObj, Excel;

var Excel: OleVariant;
Excel := CreateOleObject('EXCEL.Application');
Excel.Application.Workbooks.Add;
Excel.Application.Workbooks[1].SaveAs('c:\test.xlsx', xlWorkbookDefault); // or xlOpenXMLWorkbook (51)
Excel.Application.Quit;

-----------------------------------------

unit Excel;

interface

uses Windows, Activex;
// originally from Excel97.pas
// XlFileFormat constants

type
  XlFileFormat = TOleEnum;
const
  xlAddIn = $00000012;
  xlCSV = $00000006;
  xlCSVMac = $00000016;
  xlCSVMSDOS = $00000018;
  xlCSVWindows = $00000017;
  xlDBF2 = $00000007;
  xlDBF3 = $00000008;
  xlDBF4 = $0000000B;
  xlDIF = $00000009;
  xlExcel2 = $00000010;
  xlExcel2FarEast = $0000001B;
  xlExcel3 = $0000001D;
  xlExcel4 = $00000021;
  xlExcel5 = $00000027;
  xlExcel7 = $00000027;
  xlExcel9795 = $0000002B;
  xlExcel4Workbook = $00000023;
  xlIntlAddIn = $0000001A;
  xlIntlMacro = $00000019;
  xlWorkbookNormal = $FFFFEFD1;
  xlSYLK = $00000002;
  xlTemplate = $00000011;
  xlCurrentPlatformText = $FFFFEFC2;
  xlTextMac = $00000013;
  xlTextMSDOS = $00000015;
  xlTextPrinter = $00000024;
  xlTextWindows = $00000014;
  xlWJ2WD1 = $0000000E;
  xlWK1 = $00000005;
  xlWK1ALL = $0000001F;
  xlWK1FMT = $0000001E;
  xlWK3 = $0000000F;
  xlWK4 = $00000026;
  xlWK3FM3 = $00000020;
  xlWKS = $00000004;
  xlWorks2FarEast = $0000001C;
  xlWQ1 = $00000022;
  xlWJ3 = $00000028;
  xlWJ3FJ3 = $00000029;
  xlExcel12 =50;
  xlExcel8 = 56;
  xlHtml = 44;
  xlOpenXMLAddIn = 55;
  xlOpenXMLTemplate = 54;
  xlOpenXMLTemplateMacroEnabled = 53;
  xlOpenXMLWorkbook = 51;
  xlOpenXMLWorkbookMacroEnabled = 52;
  xlTemplate8 = 17;
  xlUnicodeText = 42;
  xlWebArchive = 45;
  xlWorkbookDefault = 51;
  xlXMLSpreadsheet = 46;

implementation
end.

轉貼至 https://stackoverflow.com/questions/9067053/delphi-ole-excel-container-save-file


XlFileFormat 枚举 (Excel)

指定保存工作表时的文件格式。

XLFILEFORMAT 枚举 (EXCEL)
名称说明扩展名
xlAddIn18Microsoft Excel 97-2003 外接程序*.xla
xlAddIn818Microsoft Excel 97-2003 外接程序*.xla
xlCSV6CSV*.csv
xlCSVMac22Macintosh CSV*.csv
xlCSVMSDOS24MSDOS CSV*.csv
xlCSVUTF862UTF8 CSV*.csv
xlCSVWindows23Windows CSV*.csv
xlCurrentPlatformText-4158当前平台文本*.txt
xlDBF27Dbase 2 格式*.dbf
xlDBF38Dbase 3 格式*.dbf
xlDBF411Dbase 4 格式*.dbf
xlDIF9数据交换格式*.dif
xlExcel1250Excel 二进制工作簿*.xlsb
xlExcel216Excel 版本 2.0 (1987)*.xls
xlExcel2FarEast27Excel 版本 2.0 中文 (1987)*.xls
xlExcel329Excel 版本 3.0 (1990)*.xls
xlExcel433Excel 版本 4.0 (1992)*.xls
xlExcel4Workbook35Excel 版本 4.0 工作簿格式 (1992)*.xlw
xlExcel539Excel 版本 5.0 (1994)*.xls
xlExcel739Excel 95(版本 7.0)*.xls
xlExcel856Excel 97-2003 工作簿*.xls
xlExcel979543Excel 版本 95 和 97*.xls
xlHtml44HTML 格式.htm;.html
xlIntlAddIn26国际外接程序无文件扩展名
xlIntlMacro25国际宏无文件扩展名
xlOpenDocumentSpreadsheet60OpenDocument 电子表格*.ods
xlOpenXMLAddIn55Open XML 外接程序*.xlam
xlOpenXMLStrictWorkbook61 (&H3D)Strict Open XML 文件*.xlsx
xlOpenXMLTemplate54Open XML 模板*.xltx
xlOpenXMLTemplateMacroEnabled53启用 Open XML 模板宏*.xltm
xlOpenXMLWorkbook51Open XML 工作簿*.xlsx
xlOpenXMLWorkbookMacroEnabled52启用 Open XML 工作簿宏*.xlsm
xlSYLK2符号链接格式*.slk
xlTemplate17Excel 模板格式*.xlt
xlTemplate817模板 8*.xlt
xlTextMac19Macintosh 文本*.txt
xlTextMSDOS21MSDOS 文本*.txt
xlTextPrinter36打印机文本*.prn
xlTextWindows20Windows 文本*.txt
xlUnicodeText42Unicode 文本无文件扩展名;*.txt
xlWebArchive45Web 档案.mh;.mhtml
xlWJ2WD114日语 1-2-3*.wj2
xlWJ340日语 1-2-3*.wj3
xlWJ3FJ341日语 1-2-3 格式*.wj3
xlWK15Lotus 1-2-3 格式*.wk1
xlWK1ALL31Lotus 1-2-3 格式*.wk1
xlWK1FMT30Lotus 1-2-3 格式*.wk1
xlWK315Lotus 1-2-3 格式*.wk3
xlWK3FM332Lotus 1-2-3 格式*.wk3
xlWK438Lotus 1-2-3 格式*.wk4
xlWKS4Lotus 1-2-3 格式*.wks
xlWorkbookDefault51默认工作簿*.xlsx
xlWorkbookNormal-4143常规工作簿*.xls
xlWorks2FarEast28Microsoft Works 2.0 两端对齐格式*.wks
xlWQ134Quattro Pro 格式*.wq1
xlXMLSpreadsheet46XML 电子表格*.xml


轉貼至:https://docs.microsoft.com/zh-cn/office/vba/api/excel.xlfileformat