diff --git a/unimarc/.claude/settings.local.json b/unimarc/.claude/settings.local.json new file mode 100644 index 0000000..530e2a2 --- /dev/null +++ b/unimarc/.claude/settings.local.json @@ -0,0 +1,19 @@ +{ + "hooks": { + "conversation-start": "새로운 대화를 시작할 때 항상 CLAUDE.md 파일을 자동으로 읽고 프로젝트 컨텍스트를 파악하세요", + "user-prompt-submit": "작업을 시작하기 전에 항상 CLAUDE.md 파일을 읽고 참조하세요" + }, + "rules": [ + "대화 시작 시 반드시 CLAUDE.md 파일을 읽어서 프로젝트 컨텍스트를 파악할 것", + "모든 답변은 한국어로 작성할 것", + "UniMarc 프로젝트는 C# WinForms 기반의 도서관 관리 시스템임" + ], + "context_files": [ + "CLAUDE.md" + ], + "project_info": { + "name": "UniMarc", + "type": "도서관 자료 관리 시스템", + "tech_stack": "C# WinForms, .NET Framework 4.7.2, MySQL" + } +} \ No newline at end of file diff --git a/unimarc/.cursor/settings.json b/unimarc/.cursor/settings.json new file mode 100644 index 0000000..e1a7ec4 --- /dev/null +++ b/unimarc/.cursor/settings.json @@ -0,0 +1,6 @@ +{ + "hooks": { + "conversation-start": "새로운 대화를 시작할 때 항상 CLAUDE.md 파일을 자동으로 읽고 프로젝트 컨텍스트를 파악하세요", + "user-prompt-submit": "작업을 시작하기 전에 항상 CLAUDE.md 파일을 읽고 참조하세요" + } + } \ No newline at end of file diff --git a/unimarc/.cursorignore b/unimarc/.cursorignore new file mode 100644 index 0000000..78fac00 --- /dev/null +++ b/unimarc/.cursorignore @@ -0,0 +1,9 @@ +# 이 파일들은 항상 컨텍스트에 포함 +!CLAUDE.md +!.claude/settings.local.json + +# 제외할 파일들 +bin/ +obj/ +*.dll +*.pdb diff --git a/unimarc/.cursorrules b/unimarc/.cursorrules new file mode 100644 index 0000000..301f22f --- /dev/null +++ b/unimarc/.cursorrules @@ -0,0 +1 @@ +CLAUDE.md 파일을 참조하여 답변하세요 \ No newline at end of file diff --git a/unimarc/CLAUDE.md b/unimarc/CLAUDE.md new file mode 100644 index 0000000..4e00d3d --- /dev/null +++ b/unimarc/CLAUDE.md @@ -0,0 +1,48 @@ +# ⚠️ 중요: 대화 시작시 이 파일을 반드시 읽으세요! +# 답변은 가급적이면 한글로! +# UniMarc 프로젝트 - Claude 작업 가이드 + +> **Claude에게**: 대화를 시작할 때마다 이 파일을 먼저 읽어서 프로젝트 컨텍스트를 파악하세요. + +## 프로젝트 개요 +- **프로젝트명**: UniMarc (도서관 자료 관리 시스템) +- **기술스택**: C# WinForms, .NET Framework 4.7.2 +- **데이터베이스**: MySQL +- **주요기능**: 마크 작성, 복본조사, DLS 연동, 도서 정보 관리 + +## 코딩 컨벤션 +- 파일명: PascalCase (예: DLS_Copy.cs) +- 클래스명: PascalCase +- 메서드명: PascalCase +- 변수명: camelCase +- 상수명: UPPER_CASE + +## 주요 디렉토리 구조 +- `/마크/`: 마크 관련 폼들 +- `/납품관리/`: 납품 관리 관련 폼들 +- `/마스터/`: 마스터 데이터 관리 폼들 +- `/홈/`: 메인 화면 관련 폼들 +- `/회계/`: 회계 관련 폼들 + +## 개발 시 주의사항 +1. WebView2 사용 시 async/await 패턴 적용 +2. 데이터베이스 연결은 Helper_DB 클래스 사용 +3. 에러 처리는 try-catch 블록으로 처리 +4. 한글 주석 사용 + +## 빌드 및 배포 +- Visual Studio 2019 이상 필요 +- NuGet 패키지 복원 후 빌드 +- WebView2 런타임 필요 +- NetFX 프로젝트이므로 dotnet 명령은 사용 불가 + +## MsBuild 실행파일 위치 (경로에 공백이 있으니 쌍따옴표로 감싸야 함) +## 매개변수 입력할때 platform 은 제거하고 그냥 프로젝트명만 입력 +F:\(VHD) Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\msbuild.exe + +## 프로젝트 파일명 +UniMarc.csproj + +## Webview2 Fixed Version 다운로드 주소 +https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/759b508a-00bb-4724-9b87-2703c8417737/Microsoft.WebView2.FixedVersionRuntime.139.0.3405.86.x86.cab + diff --git a/unimarc/README.md b/unimarc/README.md new file mode 100644 index 0000000..69b4916 --- /dev/null +++ b/unimarc/README.md @@ -0,0 +1,51 @@ +# UniMarc - 도서관 자료 관리 시스템 + +## 📋 프로젝트 개요 +- **프로젝트명**: UniMarc +- **목적**: 도서관 자료 관리 시스템 +- **기술스택**: C# WinForms, .NET Framework 4.7.2 +- **데이터베이스**: MySQL +- **주요기능**: 마크 작성, 복본조사, DLS 연동, 도서 정보 관리 + +## 🛠️ 개발 환경 +- Visual Studio 2019 이상 +- .NET Framework 4.7.2 +- WebView2 Runtime +- MySQL 데이터베이스 + +## 📁 디렉토리 구조 +``` +unimarc/ +├── 마크/ # 마크 관련 폼들 +├── 납품관리/ # 납품 관리 관련 폼들 +├── 마스터/ # 마스터 데이터 관리 폼들 +├── 홈/ # 메인 화면 관련 폼들 +├── 회계/ # 회계 관련 폼들 +├── 편의기능/ # 편의 기능들 +└── 작업일지/ # 작업 일지 관련 +``` + +## 🔧 빌드 방법 +```cmd +# MSBuild 사용 +"F:\(VHD) Program Files\Microsoft Visual Studio\2022\MSBuild\Current\Bin\MSBuild.exe" UniMarc.csproj +``` + +## ⚠️ 중요 주의사항 +1. **MSBuild 경로**: 공백이 포함되어 있어 쌍따옴표 필수 +2. **WebView2**: async/await 패턴 적용 필요 +3. **데이터베이스**: Helper_DB 클래스 사용 +4. **에러 처리**: try-catch 블록 필수 +5. **한글 주석** 사용 + +## 📝 코딩 컨벤션 +- 파일명: PascalCase +- 클래스명: PascalCase +- 메서드명: PascalCase +- 변수명: camelCase +- 상수명: UPPER_CASE + +## 🔄 최근 주요 변경사항 +- DLS_Copy.cs: webBrowser1 → WebView2로 교체 +- NuGet.Config: HTTPS 소스로 변경 +- System.Runtime.CompilerServices.Unsafe 버전 충돌 해결 diff --git a/unimarc/unimarc.sln b/unimarc/unimarc.sln index 8840ad2..535defe 100644 --- a/unimarc/unimarc.sln +++ b/unimarc/unimarc.sln @@ -9,6 +9,12 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Factory_Client", "Factory_C EndProject Project("{54435603-DBB4-11D2-8724-00A0C9A8B90C}") = "UniMarcSetup", "UniMarcSetup\UniMarcSetup.vdproj", "{B0A88F76-DC68-44F9-90B4-CD94625CC1F4}" EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "솔루션 항목", "솔루션 항목", "{2A3A057F-5D22-31FD-628C-DF5EF75AEF1E}" + ProjectSection(SolutionItems) = preProject + CLAUDE.md = CLAUDE.md + .claude\settings.local.json = .claude\settings.local.json + EndProjectSection +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU diff --git a/unimarc/unimarc/.claude/settings.local.json b/unimarc/unimarc/.claude/settings.local.json new file mode 100644 index 0000000..fd55433 --- /dev/null +++ b/unimarc/unimarc/.claude/settings.local.json @@ -0,0 +1,10 @@ +{ + "permissions": { + "allow": [ + "Bash(\"F:\\(VHD) Program Files\\Microsoft Visual Studio\\2022\\MSBuild\\Current\\Bin\\msbuild.exe\" \"UniMarc.csproj\")", + "Bash(\"F:\\(VHD) Program Files\\Microsoft Visual Studio\\2022\\MSBuild\\Current\\Bin\\msbuild.exe\" \"UniMarc.csproj\")", + "Bash(\"F:\\(VHD) Program Files\\Microsoft Visual Studio\\2022\\MSBuild\\Current\\Bin\\msbuild.exe\" \"UniMarc.csproj\")" + ], + "deny": [] + } +} \ No newline at end of file diff --git a/unimarc/unimarc/.vscode/launch.json b/unimarc/unimarc/.vscode/launch.json new file mode 100644 index 0000000..a199e7f --- /dev/null +++ b/unimarc/unimarc/.vscode/launch.json @@ -0,0 +1,23 @@ +{ + "version": "0.2.0", + "configurations": [ + { + "name": "UniMarc Debug (.NET Framework)", + "type": "clr", + "request": "launch", + "preLaunchTask": "build", + "program": "${workspaceFolder}/bin/Debug/UniMarc.exe", + "args": [], + "cwd": "${workspaceFolder}", + "console": "internalConsole", + "stopAtEntry": false, + "enableStepFiltering": false + }, + { + "name": "UniMarc Attach (.NET Framework)", + "type": "clr", + "request": "attach", + "processName": "UniMarc.exe" + } + ] +} diff --git a/unimarc/unimarc/.vscode/settings.json b/unimarc/unimarc/.vscode/settings.json new file mode 100644 index 0000000..013007b --- /dev/null +++ b/unimarc/unimarc/.vscode/settings.json @@ -0,0 +1,3 @@ +{ + "dotnet.preferCSharpExtension": true +} \ No newline at end of file diff --git a/unimarc/unimarc/.vscode/tasks.json b/unimarc/unimarc/.vscode/tasks.json new file mode 100644 index 0000000..83e25a3 --- /dev/null +++ b/unimarc/unimarc/.vscode/tasks.json @@ -0,0 +1,50 @@ +{ + "version": "2.0.0", + "tasks": [ + { + "label": "build", + "command": "\"F:\\(VHD) Program Files\\Microsoft Visual Studio\\2022\\MSBuild\\Current\\Bin\\msbuild.exe\"", + "type": "process", + "args": [ + "UniMarc.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "group": "build", + "presentation": { + "reveal": "always" + }, + "problemMatcher": "$msCompile" + }, + { + "label": "publish", + "command": "msbuild", + "type": "process", + "args": [ + "UniMarc.csproj", + "/p:Configuration=Release", + "/p:PublishProfile=FolderProfile" + ], + "group": "build", + "presentation": { + "reveal": "silent" + }, + "problemMatcher": "$msCompile" + }, + { + "label": "watch", + "command": "msbuild", + "type": "process", + "args": [ + "UniMarc.csproj", + "/property:GenerateFullPaths=true", + "/consoleloggerparameters:NoSummary" + ], + "group": "build", + "presentation": { + "reveal": "silent" + }, + "problemMatcher": "$msCompile" + } + ] +} diff --git a/unimarc/unimarc/Main.cs b/unimarc/unimarc/Main.cs index 711a9f0..79bca89 100644 --- a/unimarc/unimarc/Main.cs +++ b/unimarc/unimarc/Main.cs @@ -37,12 +37,12 @@ namespace WindowsFormsApp1 public string DB_User_Data; public string User; public string com_idx; - + public Main() { InitializeComponent(); - + } public string User_Name { get; internal set; } @@ -53,7 +53,7 @@ namespace WindowsFormsApp1 this.Visible = false; // 메인폼을 먼저 숨김 - + #region "Log setting" var logsubdir = "{yyyy|MM|dd}"; string tPath = string.Format("{0}\\LOG", AppDomain.CurrentDomain.BaseDirectory).Replace("\\\\", "\\"); ; @@ -64,10 +64,12 @@ namespace WindowsFormsApp1 login login = new login(); VersionText.Text = string.Format("UniMarc Ver.{0}", ip.VersionInfo()); - if (DialogResult.OK == login.ShowDialog(this)) { + if (DialogResult.OK == login.ShowDialog(this)) + { this.Visible = true; } - else { + else + { this.Close(); } @@ -146,7 +148,7 @@ namespace WindowsFormsApp1 #region 즐겨찾기 버튼 세팅 public void SetBtnName() { - string Area = + string Area = "`ShortCut1`, `ShortCut2`, `ShortCut3`, `ShortCut4`, `ShortCut5`, " + "`ShortCut6`, `ShortCut7`, `ShortCut8`, `ShortCut9`, `ShortCut10`, " + "`ShortCut11`, `ShortCut12`"; @@ -241,7 +243,7 @@ namespace WindowsFormsApp1 "송금내역조회", "송금등록", "매입 집계", "매입 장부", "매출 입력", "매출 입금", "매출 조회", "매출 집계", "파트타임 관리" }; ToolStripMenuItem[] AccT = { - 송금내역조회, 송금등록, 매입집계, 매입장부, 매출입력, + 송금내역조회, 송금등록, 매입집계, 매입장부, 매출입력, 매출입금, 매출조회, 매출집계, 파트타임관리 }; ToolStripMenuItem[] TempAcc = { @@ -285,15 +287,17 @@ namespace WindowsFormsApp1 for (int a = 0; a < MenuTotal.Length; a++) { bool IsText = false; - for(int b = 0; b < MenuTotal[a].Length; b++) + for (int b = 0; b < MenuTotal[a].Length; b++) { - if (MenuTotal[a][b] == btnText) { + if (MenuTotal[a][b] == btnText) + { IsText = true; count[1] = b; break; } } - if (IsText) { + if (IsText) + { count[0] = a; break; } @@ -305,7 +309,8 @@ namespace WindowsFormsApp1 return; // 권한설정으로 인한 리턴 - if (!MenuCheckT[count[0]][count[1]].Enabled) { + if (!MenuCheckT[count[0]][count[1]].Enabled) + { MessageBox.Show("권한이 설정되지 않았습니다!"); return; } @@ -725,7 +730,7 @@ namespace WindowsFormsApp1 Acc_purchase_Aggregation.Show(); } } - + private void 매입미결제ToolStripMenuItem_Click(object sender, EventArgs e) { if (Acc_purchase_Not_Pay != null) @@ -741,7 +746,7 @@ namespace WindowsFormsApp1 Acc_purchase_Not_Pay.Show(); } } - + private void 매출입력ToolStripMenuItem1_Click(object sender, EventArgs e) { if (Acc_sales_Input != null) @@ -983,11 +988,11 @@ namespace WindowsFormsApp1 //} //else //{ - Mac_check_Copy = new Check_copy(this); - Mac_check_Copy.MdiParent = this; - Mac_check_Copy.WindowState = FormWindowState.Normal; - Mac_check_Copy.FormClosed += (o, ea) => Mac_check_Copy = null; - Mac_check_Copy.Show(); + Mac_check_Copy = new Check_copy(this); + Mac_check_Copy.MdiParent = this; + Mac_check_Copy.WindowState = FormWindowState.Normal; + Mac_check_Copy.FormClosed += (o, ea) => Mac_check_Copy = null; + Mac_check_Copy.Show(); //} //foreach (Form frm in Application.OpenForms) @@ -1192,7 +1197,7 @@ namespace WindowsFormsApp1 DLS_school_Lookup.Show(); } } - private void dLS복본조사ToolStripMenuItem_Click(object sender, EventArgs e) + async private void dLS복본조사ToolStripMenuItem_Click(object sender, EventArgs e) { if (Mac_dLS_Copy != null) { @@ -1200,6 +1205,8 @@ namespace WindowsFormsApp1 } else { + var environment = await WebView2Installer.GetWebView2EnvironmentAsync(); + Mac_dLS_Copy = new DLS_Copy(this); Mac_dLS_Copy.MdiParent = this; Mac_dLS_Copy.WindowState = FormWindowState.Maximized; diff --git a/unimarc/unimarc/Skill.cs b/unimarc/unimarc/Skill.cs index 3169d21..bd276ad 100644 --- a/unimarc/unimarc/Skill.cs +++ b/unimarc/unimarc/Skill.cs @@ -63,7 +63,7 @@ namespace WindowsFormsApp1 else dataGridView.Sort(dataGridView.Columns[col], System.ComponentModel.ListSortDirection.Ascending); - + } /// /// * Row헤더에 체크박스를 넣는 기능* @@ -99,7 +99,7 @@ namespace WindowsFormsApp1 } private void datagridview_checkBox_Click(object sender, EventArgs e) { - foreach(DataGridViewRow r in ((DataGridView)sender).Rows) + foreach (DataGridViewRow r in ((DataGridView)sender).Rows) { r.Cells["colCheck"].Value = ((CheckBox)sender).Checked; } @@ -127,8 +127,8 @@ namespace WindowsFormsApp1 //텝 공백 문자열 동시에 사용하여 분류 // stringInClipboard= stringInClipboard.Replace("\r", ""); if (stringInClipboard == null) return; - ListrowsInClipboard = stringInClipboard.Split(rowSpliteter, StringSplitOptions.None).ToList(); - rowsInClipboard.RemoveAt(rowsInClipboard.Count-1); + List rowsInClipboard = stringInClipboard.Split(rowSpliteter, StringSplitOptions.None).ToList(); + rowsInClipboard.RemoveAt(rowsInClipboard.Count - 1); //get the row and column of selected cell in dataGridView1 int r = ((DataGridView)sender).SelectedCells[0].RowIndex; int c = ((DataGridView)sender).SelectedCells[0].ColumnIndex; @@ -209,7 +209,7 @@ namespace WindowsFormsApp1 private Rectangle dragBoxFromMouseDown; private int rowIndexFromMouseDown; private int rowIndexOfItemUnderMouseToDrop; - + public void MouseMove(object sender, MouseEventArgs e) { DataGridView dataGridView = sender as DataGridView; @@ -292,7 +292,8 @@ namespace WindowsFormsApp1 string[] db_data = db_res1.Split('|'); string[] db_pur = db_res2.Split('|'); - if (db_res1.Length < 3) { + if (db_res1.Length < 3) + { MessageBox.Show("DB호출 에러!", "Error"); return "False"; } @@ -300,20 +301,26 @@ namespace WindowsFormsApp1 string fax = string.Empty; string emchk = string.Empty; - if (db_pur.Length > 3) { - for(int a= 0; a < db_pur.Length; a++) + if (db_pur.Length > 3) + { + for (int a = 0; a < db_pur.Length; a++) { - if (a % 3 == 0) { // 전화번호 - if (db_pur[a] != "") { + if (a % 3 == 0) + { // 전화번호 + if (db_pur[a] != "") + { tel = db_pur[a]; } } - if (a % 3 == 1) { // 팩스 - if (db_pur[a] != "") { + if (a % 3 == 1) + { // 팩스 + if (db_pur[a] != "") + { fax = db_pur[a]; } } - if (a % 3 == 2) { // 팩스 이메일 체크 + if (a % 3 == 2) + { // 팩스 이메일 체크 emchk = db_pur[a]; } } @@ -401,7 +408,7 @@ namespace WindowsFormsApp1 #region 주문일자 / 보낸곳 (4행) rng = ws.Range["A4", "C4"]; rng.MergeCells = true; - rng.Value2 = "주문일자 : "+DateTime.Now.ToString("yyyy-MM-dd H:m:ss"); + rng.Value2 = "주문일자 : " + DateTime.Now.ToString("yyyy-MM-dd H:m:ss"); rng.HorizontalAlignment = Excel.XlHAlign.xlHAlignLeft; rng.Font.Bold = true; @@ -495,7 +502,7 @@ namespace WindowsFormsApp1 #region 추신 endcount++; - string 발송처 = "D"+endcount.ToString(); + string 발송처 = "D" + endcount.ToString(); rng = ws.Range["A" + endcount, "C" + endcount]; rng.MergeCells = true; @@ -551,7 +558,7 @@ namespace WindowsFormsApp1 rng2.Font.Bold = true; //////// - rng = ws.Range[발송처, "D"+endcount]; + rng = ws.Range[발송처, "D" + endcount]; rng.MergeCells = true; rng.Value2 = "발 송 처"; rng.Font.Bold = true; @@ -580,10 +587,10 @@ namespace WindowsFormsApp1 application.Interactive = true; application.Quit(); - + return FileName; } - catch(Exception e) + catch (Exception e) { MessageBox.Show(e.ToString()); return "False"; @@ -630,9 +637,9 @@ namespace WindowsFormsApp1 private string Excel_Sub(string[] data) { string[] length = { - "1", "2", "3", "4", "5", - "6", "7", "8", "9", "10", - "11", "12", "13", "14", "15", + "1", "2", "3", "4", "5", + "6", "7", "8", "9", "10", + "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24", "25", "26" }; @@ -646,8 +653,8 @@ namespace WindowsFormsApp1 string count = data.Length.ToString(); string res = string.Empty; - - for(int a = 0; a < length.Length; a++) + + for (int a = 0; a < length.Length; a++) { if (length[a] == count) { @@ -658,7 +665,7 @@ namespace WindowsFormsApp1 } #endregion } - public class Helper_Print + public class Helper_Print { /// /// 행의 갯수 @@ -788,7 +795,7 @@ namespace WindowsFormsApp1 /// /// [0] 발신번호 / [1] 수신번호 /// / [2] 수신자 회사명 / [3 ]수신자명 - public string Send_BaroFax(string file_name, string[] fax_param ) + public string Send_BaroFax(string file_name, string[] fax_param) { BaroService_FAXSoapClient fAXSoapClient = new BaroService_FAXSoapClient(); @@ -824,7 +831,7 @@ namespace WindowsFormsApp1 BaroService_FAXSoapClient fAXSoapClient = new BaroService_FAXSoapClient(); // 수신자회사명, 수신번호, 전송일시, 전송결과, 전송페이지수, 성공페이지수, 전송파일명 - string[] MsgBox_Array = { + string[] MsgBox_Array = { fAXSoapClient.GetFaxMessage(CERTKEY, CorpNum, sendkey).ReceiveCorp, fAXSoapClient.GetFaxMessage(CERTKEY, CorpNum, sendkey).ReceiverNum, fAXSoapClient.GetFaxMessage(CERTKEY, CorpNum, sendkey).SendDT, @@ -1190,9 +1197,9 @@ namespace WindowsFormsApp1 public bool IsConnected { get; set; } private string ipAddr = string.Empty; - private string Port = string.Empty; + private string Port = string.Empty; private string userId = string.Empty; - private string Pwd = string.Empty; + private string Pwd = string.Empty; public FTP() { } @@ -1219,7 +1226,7 @@ namespace WindowsFormsApp1 using (ftpRequest.GetResponse()) { } this.IsConnected = true; } - catch(Exception ex) + catch (Exception ex) { this.LastException = ex; System.Reflection.MemberInfo info = System.Reflection.MethodInfo.GetCurrentMethod(); @@ -1288,7 +1295,7 @@ namespace WindowsFormsApp1 buff = null; } } - catch(Exception ex) + catch (Exception ex) { MessageBox.Show(ex.ToString()); this.LastException = ex; @@ -1392,14 +1399,14 @@ namespace WindowsFormsApp1 if (reader != null) reader.Close(); - foreach(string file in result.ToString().Split('\n')) + foreach (string file in result.ToString().Split('\n')) { resultList.Add(file); } } return resultList; } - catch(Exception ex) + catch (Exception ex) { this.LastException = ex; @@ -1420,12 +1427,12 @@ namespace WindowsFormsApp1 try { - foreach(string tmpFolder in arrDir) + foreach (string tmpFolder in arrDir) { try { if (tmpFolder == string.Empty) continue; - + currentDir += @"/" + tmpFolder; string url = string.Format(@"FTP://{0}:{1}/{2}", this.ipAddr, this.Port, currentDir); @@ -1453,9 +1460,11 @@ namespace WindowsFormsApp1 private void checkDir(string localFullPathFile) { FileInfo finfo = new FileInfo(localFullPathFile); - if (!finfo.Exists) { + if (!finfo.Exists) + { DirectoryInfo dInfo = new DirectoryInfo(finfo.DirectoryName); - if (!dInfo.Exists) { + if (!dInfo.Exists) + { dInfo.Create(); } } @@ -1552,30 +1561,35 @@ namespace WindowsFormsApp1 int tDown = 0; for (int a = 0; a < array_text.Count; a++) { - // if (array_text[a] == "") continue; + // if (array_text[a] == "") continue; num.Add(array_text[a].Substring(0, 3)); - if (array_text[a][5] == '▼') { + if (array_text[a][5] == '▼') + { array_text[a] = array_text[a].Remove(0, 3); } - else { + else + { array_text[a] = array_text[a].Remove(0, 5); } 가변길이 += array_text[a] + "\n"; int textLength = 0; - if (EncodingType == "UTF-8") { + if (EncodingType == "UTF-8") + { textLength = Encoding.UTF8.GetBytes(array_text[a]).Length - WordCheck(array_text[a], "▲") - WordCheck(array_text[a], "▼"); } - else if (EncodingType == "UniCode") { + else if (EncodingType == "UniCode") + { textLength = Encoding.Unicode.GetBytes(array_text[a]).Length - WordCheck(array_text[a], "▲") - WordCheck(array_text[a], "▼"); } - else { // ANSI + else + { // ANSI textLength = Encoding.Default.GetBytes(array_text[a]).Length - WordCheck(array_text[a], "▲") - WordCheck(array_text[a], "▼"); @@ -1587,12 +1601,13 @@ namespace WindowsFormsApp1 for (int a = 0; a < array_text.Count; a++) { - if (a == 0) { //total.Add("0"); + if (a == 0) + { //total.Add("0"); tTotal.Add(0); } else { - // total.Add(total[a - 1] + count[a - 1]); + // total.Add(total[a - 1] + count[a - 1]); tTotal.Add(tTotal[a - 1] + tCount[a - 1]); } //else if (a == 1) @@ -1609,7 +1624,7 @@ namespace WindowsFormsApp1 // else c = Convert.ToInt32(Encoding.Default.GetBytes(array_text[a - 2]).Length.ToString()) - WordCheck(array_text[a - 2], "▲") - WordCheck(array_text[a - 2], "▼"); // int res = b + c; // total.Add(res.ToString()); - + } string[] str_num = num.ToArray(); @@ -1626,7 +1641,7 @@ namespace WindowsFormsApp1 // else if (total[a].Length == 2) { total[a] = total[a].Insert(0, "000"); } // else if (total[a].Length == 1) { total[a] = total[a].Insert(0, "0000"); } // 디렉토리 += str_num[a] + count[a] + total[a] + "\n"; - 디렉토리 += str_num[a] + tCount[a].ToString().PadLeft(4, '0') + tTotal[a].ToString().PadLeft(5, '0'); + 디렉토리 += str_num[a] + tCount[a].ToString().PadLeft(4, '0') + tTotal[a].ToString().PadLeft(5, '0'); } string[] 리더부 = { "00000","n", "a", "m", " ", @@ -1642,11 +1657,11 @@ namespace WindowsFormsApp1 string dp = 가변길이 + 디렉토리; int recode = 0; - if (EncodingType == "UTF-8") recode = Encoding.UTF8.GetBytes(dp).Length- WordCheck(dp, "▲") - WordCheck(dp, "▼") - WordCheck(dp, "↔"); + if (EncodingType == "UTF-8") recode = Encoding.UTF8.GetBytes(dp).Length - WordCheck(dp, "▲") - WordCheck(dp, "▼") - WordCheck(dp, "↔"); else if (EncodingType == "UniCode") recode = Encoding.Unicode.GetBytes(dp).Length - WordCheck(dp, "▲") - WordCheck(dp, "▼") - WordCheck(dp, "↔"); - else recode = Encoding.Default.GetBytes(dp).Length- WordCheck(dp, "▲") - WordCheck(dp, "▼") - WordCheck(dp, "↔"); - - + else recode = Encoding.Default.GetBytes(dp).Length - WordCheck(dp, "▲") - WordCheck(dp, "▼") - WordCheck(dp, "↔"); + + 리더부[0] = insert_Zero(recode + 24, 5); int data_addr = 24 + Encoding.Default.GetBytes(디렉토리).Length - WordCheck(디렉토리, "▲"); @@ -1693,7 +1708,7 @@ namespace WindowsFormsApp1 return result; } #endregion - + /// /// 추가하고 싶은 태그를 뷰형태의 마크에 추가하는 함수. @@ -1706,7 +1721,7 @@ namespace WindowsFormsApp1 if (Tag.Length < 3) return ""; int TargetTagNum = Convert.ToInt32(Tag.Substring(0, 3)); - + string[] SplitView = TypeView.Split('\n'); List View = new List(SplitView); @@ -1731,9 +1746,9 @@ namespace WindowsFormsApp1 /// 추가할 태그 (태그명\t지시기호\t태그내용) /// 뷰형태의 마크 /// - public string AddTagInMarc(int pTargetTagNum,string pAddTag, string pTargetData)//TagTarget Num 을 찾아서 있을경우는 해당 Tag 데이터를 전송, 없을경우는 신규로 해야함. + public string AddTagInMarc(int pTargetTagNum, string pAddTag, string pTargetData)//TagTarget Num 을 찾아서 있을경우는 해당 Tag 데이터를 전송, 없을경우는 신규로 해야함. { - + if (pAddTag.Length < 3) return ""; string tRet = pTargetData; // ex ) 020 : ~~~ 에 XXXX 내용줄 뒤에 추가 @@ -1827,7 +1842,7 @@ namespace WindowsFormsApp1 } } } - } + } else {// 기존 태그 변경 int endIdx = SplitView[a].IndexOf("▼", startIdx + 1); @@ -1906,7 +1921,7 @@ namespace WindowsFormsApp1 /// 마크 데이터 /// 추출할 함수(배열) /// - public string[] Take_Tag(string marc, string[] search,bool pSearchTag = false) + public string[] Take_Tag(string marc, string[] search, bool pSearchTag = false) { string[] ary = marc.Split(''); string[] tag = res_dir(ary[0].Substring(24)); @@ -1958,7 +1973,7 @@ namespace WindowsFormsApp1 //memo = result[b]; start += 2; int end = -1; - if (tmp.Length > 1) end=tmp.IndexOf("", start); + if (tmp.Length > 1) end = tmp.IndexOf("", start); if (memo == result[b]) break; @@ -2188,7 +2203,8 @@ namespace WindowsFormsApp1 /// EventArgs public void Int_Comma(object sender, EventArgs e) { - if (((TextBox)sender).Text != "") { + if (((TextBox)sender).Text != "") + { string text; text = ((TextBox)sender).Text.Replace(",", ""); ((TextBox)sender).Text = String.Format("{0:#,###}", Convert.ToInt32(text)); @@ -2204,7 +2220,7 @@ namespace WindowsFormsApp1 public bool isContainHangul(string value) { char[] charArr = value.ToCharArray(); - foreach(char c in charArr) + foreach (char c in charArr) { if (char.GetUnicodeCategory(c) == System.Globalization.UnicodeCategory.OtherLetter) return true; @@ -2221,7 +2237,7 @@ namespace WindowsFormsApp1 public bool CheckString(string value, string chkString) { int index = value.IndexOf(chkString); - if (index < 0) + if (index < 0) return false; return true; @@ -2264,10 +2280,10 @@ namespace WindowsFormsApp1 public class API { - public string CheckString(string pText,string pStr) + public string CheckString(string pText, string pStr) { string tRet = pText; - Regex reg = new Regex(@"([\"+pStr+"]+)" + @"[가-힣]+");//+ @"([\>]+)");//new Regex(@"([\<]+)"+ @"[ㄱ-ㅎ가-힣]+"+@"([\>]+)"); + Regex reg = new Regex(@"([\" + pStr + "]+)" + @"[가-힣]+");//+ @"([\>]+)");//new Regex(@"([\<]+)"+ @"[ㄱ-ㅎ가-힣]+"+@"([\>]+)"); MatchCollection tMatch = reg.Matches(tRet); for (int i = 0; i < tMatch.Count; i++) { @@ -2326,8 +2342,9 @@ namespace WindowsFormsApp1 xml = CheckString(xml, "〈"); doc.LoadXml(xml); } - catch (Exception ex){ - return ""; + catch (Exception ex) + { + return ""; } var json = JsonConvert.SerializeXmlNode(doc); @@ -2520,19 +2537,23 @@ namespace WindowsFormsApp1 { if (length == 1) { - try { + try + { tmp_data.Add(docs[Param[b]]["#text"]); } - catch (KeyNotFoundException e) { + catch (KeyNotFoundException e) + { tmp_data.Add(""); } } else { - try { + try + { tmp_data.Add(docs[a][Param[b]]["#text"]); } - catch (KeyNotFoundException e) { + catch (KeyNotFoundException e) + { tmp_data.Add(""); } } @@ -2649,8 +2670,8 @@ namespace WindowsFormsApp1 return dialogResult; } } - public class PrintLine - { + public class PrintLine + { string num { get; set; } string count { get; set; } string list_name { get; set; } @@ -2962,16 +2983,21 @@ namespace WindowsFormsApp1 public string VersionInfo() { string version = ""; - StreamReader sr = new StreamReader(Application.StartupPath + "\\update.inf"); - while (!sr.EndOfStream) + var updatefile = $"{Application.StartupPath}\\update.inf"; + if (System.IO.File.Exists(updatefile)) { - string line = sr.ReadLine(); - if (line.IndexOf("count=", 0) != -1) + StreamReader sr = new StreamReader(updatefile); + while (!sr.EndOfStream) { - version = line.Replace("count=", ""); - break; + string line = sr.ReadLine(); + if (line.IndexOf("count=", 0) != -1) + { + version = line.Replace("count=", ""); + break; + } } } + else version = "0"; return version; } } diff --git a/unimarc/unimarc/UniMarc.csproj b/unimarc/unimarc/UniMarc.csproj index bc3ec37..449ea64 100644 --- a/unimarc/unimarc/UniMarc.csproj +++ b/unimarc/unimarc/UniMarc.csproj @@ -36,7 +36,7 @@ true - AnyCPU + x86 true full false @@ -100,6 +100,15 @@ ..\packages\Microsoft.Bcl.AsyncInterfaces.7.0.0\lib\net462\Microsoft.Bcl.AsyncInterfaces.dll + + ..\packages\Microsoft.Web.WebView2.1.0.3351.48\lib\net462\Microsoft.Web.WebView2.Core.dll + + + ..\packages\Microsoft.Web.WebView2.1.0.3351.48\lib\net462\Microsoft.Web.WebView2.WinForms.dll + + + ..\packages\Microsoft.Web.WebView2.1.0.3351.48\lib\net462\Microsoft.Web.WebView2.Wpf.dll + ..\packages\Microsoft.Win32.Registry.5.0.0\lib\net461\Microsoft.Win32.Registry.dll @@ -191,6 +200,7 @@ + Form @@ -1950,5 +1960,7 @@ 이 프로젝트는 이 컴퓨터에 없는 NuGet 패키지를 참조합니다. 해당 패키지를 다운로드하려면 NuGet 패키지 복원을 사용하십시오. 자세한 내용은 http://go.microsoft.com/fwlink/?LinkID=322105를 참조하십시오. 누락된 파일은 {0}입니다. + + \ No newline at end of file diff --git a/unimarc/unimarc/UniMarc.csproj.user b/unimarc/unimarc/UniMarc.csproj.user index be8df31..a66c462 100644 --- a/unimarc/unimarc/UniMarc.csproj.user +++ b/unimarc/unimarc/UniMarc.csproj.user @@ -1,4 +1,4 @@ - + E:\UniMarcApplicationUpdateFiles\|ftp://ftpgloria%401.215.250.130/|ftp://ftpgloria%401.215.250.130:50005/|sftp://ftpgloria%401.215.250.130/|ftp://ftpgloria%401.215.250.130/unimarc/ diff --git a/unimarc/unimarc/WebView2Installer.cs b/unimarc/unimarc/WebView2Installer.cs new file mode 100644 index 0000000..1f20c5c --- /dev/null +++ b/unimarc/unimarc/WebView2Installer.cs @@ -0,0 +1,510 @@ +using System; +using System.Diagnostics; +using System.IO; +using System.Linq; +using System.Net; +using System.Security.Cryptography.X509Certificates; +using System.Threading.Tasks; +using System.Windows.Forms; +using Microsoft.Web.WebView2.Core; + +namespace WindowsFormsApp1 +{ + public static class WebView2Installer + { + // Fixed Version 다운로드 URL (CAB 파일 사용) + private const string WEBVIEW2_FIXED_VERSION_URL = "https://msedge.sf.dl.delivery.mp.microsoft.com/filestreamingservice/files/759b508a-00bb-4724-9b87-2703c8417737/Microsoft.WebView2.FixedVersionRuntime.139.0.3405.86.x86.cab"; + private const string INSTALLER_FILENAME = "Microsoft.WebView2.FixedVersionRuntime.139.0.3405.86.x86.cab"; + + // Fixed Version 런타임을 애플리케이션 폴더에 배치할 경로 + private const string FIXED_VERSION_FOLDER = "WebView2Runtime"; + + /// + /// WebView2 Fixed Version 환경을 준비 (항상 Fixed Version 사용) + /// + public static async Task GetWebView2EnvironmentAsync() + { + try + { + // 일관성을 위해 항상 Fixed Version 사용 + string fixedVersionPath = GetFixedVersionPath(); + + // Fixed Version 런타임이 이미 있는지 확인 + string actualRuntimePath = FindActualRuntimePath(fixedVersionPath); + if (!string.IsNullOrEmpty(actualRuntimePath)) + { + try + { + // Fixed Version 사용 시 환경 옵션 명시적 지정 + string userDataFolder = Path.Combine(Application.StartupPath, "WebView2UserData"); + + // 사용자 데이터 폴더 생성 + if (!Directory.Exists(userDataFolder)) + { + Directory.CreateDirectory(userDataFolder); + } + + + // 런타임 버전 정보 확인 + try + { + string version = CoreWebView2Environment.GetAvailableBrowserVersionString(actualRuntimePath); + + } + catch (Exception verEx) + { + MessageBox.Show( + $"런타임 버전 확인 실패:\n\n" + + $"경로: {actualRuntimePath}\n" + + $"오류: {verEx.Message}", + "버전 확인 오류", + MessageBoxButtons.OK, + MessageBoxIcon.Warning + ); + } + + return await CoreWebView2Environment.CreateAsync(actualRuntimePath, userDataFolder); + } + catch (WebView2RuntimeNotFoundException ex) + { + MessageBox.Show( + $"WebView2 환경 생성 실패!\n\n" + + $"런타임 경로: {actualRuntimePath}\n" + + $"오류: {ex.Message}\n\n" + + $"런타임을 다시 다운로드합니다.", + "WebView2 환경 오류", + MessageBoxButtons.OK, + MessageBoxIcon.Warning + ); + + // 기존 런타임 폴더 삭제 후 재다운로드 + try + { + Directory.Delete(fixedVersionPath, true); + } + catch { } + } + } + + // Fixed Version 런타임 다운로드 및 배치 + bool success = await DownloadFixedVersionRuntime(); + if (success) + { + actualRuntimePath = FindActualRuntimePath(fixedVersionPath); + if (!string.IsNullOrEmpty(actualRuntimePath)) + { + try + { + // 다운로드 후 환경 생성 시도 (Fixed Version) + string userDataFolder = Path.Combine(Application.StartupPath, "WebView2UserData"); + + // 사용자 데이터 폴더 생성 + if (!Directory.Exists(userDataFolder)) + { + Directory.CreateDirectory(userDataFolder); + } + var environment = await CoreWebView2Environment.CreateAsync(actualRuntimePath, userDataFolder); + return environment; + } + catch (WebView2RuntimeNotFoundException ex) + { + MessageBox.Show( + $"다운로드 후에도 WebView2 환경 생성 실패!\n\n" + + $"런타임 경로: {actualRuntimePath}\n" + + $"오류: {ex.Message}\n\n" + + $"해당 경로의 파일들을 확인해주세요.", + "WebView2 환경 생성 최종 실패", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + throw; + } + } + else + { + MessageBox.Show( + $"다운로드는 완료되었지만 유효한 런타임 경로를 찾을 수 없습니다.\n\n" + + $"기본 경로: {fixedVersionPath}", + "런타임 경로 탐색 실패", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + } + } + + throw new Exception("WebView2 Fixed Version 런타임을 사용할 수 없습니다."); + } + catch (Exception ex) + { + MessageBox.Show( + $"WebView2 Fixed Version 환경 준비 중 오류가 발생했습니다: {ex.Message}", + "오류", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + throw; + } + } + + /// + /// Fixed Version 런타임 경로 반환 + /// + private static string GetFixedVersionPath() + { + string appPath = Application.StartupPath; + return Path.Combine(appPath, FIXED_VERSION_FOLDER); + } + + /// + /// 실제 WebView2 런타임 폴더 경로를 찾는 메서드 + /// + private static string FindActualRuntimePath(string basePath) + { + try + { + if (!Directory.Exists(basePath)) + return null; + + // WebView2 런타임의 주요 파일들 (우선순위대로) + string targetFiles = "msedgewebview2.exe"; + var targetfi = new System.IO.FileInfo(System.IO.Path.Combine(basePath, targetFiles)); + if(targetfi.Exists) return targetfi.Directory.FullName; + + //루트에 없었으니 서브폴더에서 찾는다 + foreach(var subdir in targetfi.Directory.GetDirectories()) + { + var fi = new System.IO.FileInfo(System.IO.Path.Combine(subdir.FullName, targetFiles)); + if (fi.Exists) return fi.Directory.FullName; + } + + return null; + + } + catch (Exception ex) + { + // 디버깅을 위한 예외 정보 출력 + MessageBox.Show( + $"FindActualRuntimePath 오류:\n{ex.Message}\n\n기본 경로: {basePath}", + "런타임 경로 탐색 오류", + MessageBoxButtons.OK, + MessageBoxIcon.Warning + ); + return null; + } + } + + /// + /// 서브디렉토리에서 WebView2 런타임 파일 검색 + /// + private static string SearchInSubDirectories(string currentPath, string[] targetFiles, int currentDepth, int maxDepth) + { + if (currentDepth >= maxDepth || !Directory.Exists(currentPath)) + return null; + + try + { + // 현재 경로의 모든 서브디렉토리 검색 + foreach (string subDir in Directory.GetDirectories(currentPath)) + { + // 각 대상 파일을 해당 서브디렉토리에서 확인 + foreach (string targetFile in targetFiles) + { + string fullPath = Path.Combine(subDir, targetFile); + if (File.Exists(fullPath)) + { + string candidatePath; + // EBWebView 하위 파일인 경우 해당 디렉토리 반환 + if (targetFile.Contains("\\")) + { + candidatePath = Path.Combine(subDir, Path.GetDirectoryName(targetFile)); + } + else + { + candidatePath = subDir; + } + + // 런타임 유효성 검증 + if (ValidateWebView2Runtime(candidatePath)) + { + return candidatePath; + } + } + } + + // 재귀적으로 더 깊은 폴더 검색 + string result = SearchInSubDirectories(subDir, targetFiles, currentDepth + 1, maxDepth); + if (!string.IsNullOrEmpty(result)) + return result; + } + + return null; + } + catch + { + return null; + } + } + + /// + /// WebView2 런타임이 유효한지 검증 + /// + private static bool ValidateWebView2Runtime(string runtimePath) + { + try + { + if (string.IsNullOrEmpty(runtimePath) || !Directory.Exists(runtimePath)) + return false; + + // 필수 파일들 체크 + string[] requiredFiles = { + "msedgewebview2.exe", + "WebView2Loader.dll" + }; + + foreach (string file in requiredFiles) + { + if (!File.Exists(Path.Combine(runtimePath, file))) + { + return false; + } + } + + return true; + } + catch + { + return false; + } + } + + + /// + /// Fixed Version WebView2 런타임 다운로드 및 배치 + /// + private static async Task DownloadFixedVersionRuntime() + { + try + { + var fi = new System.IO.FileInfo(Path.Combine(".\\Temp", INSTALLER_FILENAME)); + if (fi.Directory.Exists == false) fi.Directory.Create(); + + string extractPath = GetFixedVersionPath(); + + // 진행상황 표시 폼 + var progressForm = new Form() + { + Text = "WebView2 런타임 다운로드", + Size = new System.Drawing.Size(400, 120), + FormBorderStyle = FormBorderStyle.FixedDialog, + StartPosition = FormStartPosition.CenterScreen, + MaximizeBox = false, + MinimizeBox = false, + //TopMost = true, + }; + + var progressBar = new ProgressBar() + { + Location = new System.Drawing.Point(20, 20), + Size = new System.Drawing.Size(340, 23), + Style = ProgressBarStyle.Continuous + }; + + var statusLabel = new Label() + { + Location = new System.Drawing.Point(20, 50), + Size = new System.Drawing.Size(340, 20), + Text = "다운로드 준비 중..." + }; + + progressForm.Controls.Add(progressBar); + progressForm.Controls.Add(statusLabel); + progressForm.Show(); + + if (System.IO.File.Exists(fi.FullName) == false) + { + // 다운로드 + using (var client = new WebClient()) + { + client.DownloadProgressChanged += (s, e) => + { + progressBar.Value = e.ProgressPercentage; + statusLabel.Text = $"다운로드 중... {e.ProgressPercentage}%"; + Application.DoEvents(); + }; + + await client.DownloadFileTaskAsync(WEBVIEW2_FIXED_VERSION_URL, fi.FullName); + } + } + + + statusLabel.Text = "CAB 파일 압축 해제 중..."; + progressBar.Style = ProgressBarStyle.Marquee; + Application.DoEvents(); + + // CAB 파일 압축 해제를 위한 경로 생성 + if (!Directory.Exists(extractPath)) + { + Directory.CreateDirectory(extractPath); + } + + // Windows expand 명령어를 사용하여 CAB 파일 압축 해제 + bool extractSuccess = await ExtractCabFileAsync(fi.FullName, extractPath); + + statusLabel.Text = "런타임 경로 확인 중..."; + Application.DoEvents(); + + if (!extractSuccess) + { + progressForm.Close(); + throw new Exception("CAB 파일 압축 해제에 실패했습니다."); + } + + // 실제 런타임 경로 확인 + string actualPath = FindActualRuntimePath(extractPath); + if (string.IsNullOrEmpty(actualPath)) + { + progressForm.Close(); + throw new Exception("압축 해제는 완료되었지만 WebView2 런타임을 찾을 수 없습니다."); + } + + statusLabel.Text = "설정 완료 중..."; + Application.DoEvents(); + + // 잠시 대기 후 폼 닫기 + await Task.Delay(500); + progressForm.Close(); + + return Directory.Exists(extractPath); + } + catch (Exception ex) + { + MessageBox.Show( + $"WebView2 런타임 준비 중 오류가 발생했습니다: {ex.Message}", + "오류", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + return false; + } + } + + /// + /// CAB 파일을 압축 해제하는 메서드 + /// + private static async Task ExtractCabFileAsync(string cabFilePath, string extractPath) + { + try + { + //// 디버깅 정보 표시 + //MessageBox.Show( + // $"CAB 압축 해제 시작\n\n" + + // $"CAB 파일: {cabFilePath}\n" + + // $"압축 해제 경로: {extractPath}\n" + + // $"CAB 파일 존재: {File.Exists(cabFilePath)}\n" + + // $"CAB 파일 크기: {(File.Exists(cabFilePath) ? new FileInfo(cabFilePath).Length.ToString("N0") + " bytes" : "파일 없음")}", + // "디버깅 정보", + // MessageBoxButtons.OK, + // MessageBoxIcon.Information + //); + + // Windows expand 명령어를 사용하여 CAB 파일 압축 해제 + var startInfo = new ProcessStartInfo("expand.exe") + { + Arguments = $"\"{cabFilePath}\" -F:* \"{extractPath}\"", + UseShellExecute = false, + CreateNoWindow = true, // 콘솔 창 보이게 설정 + RedirectStandardOutput = false, // 출력 리다이렉션 해제 + RedirectStandardError = false // 에러 리다이렉션 해제 + }; + + using (var process = Process.Start(startInfo)) + { + // 최대 30초 대기 + bool exited = await Task.Run(() => process.WaitForExit(30000)); + + if (!exited) + { + // 프로세스가 30초 내에 완료되지 않으면 강제 종료 + try + { + process.Kill(); + } + catch { } + return false; + } + + // 압축 해제 성공 여부 확인 + bool success = process.ExitCode == 0; + if (success == false) + { + try + { + System.IO.File.Delete(cabFilePath); + } + catch (Exception ex) + { + Console.WriteLine("remove cab file : " + ex.Message); + } + } + + // 실제 런타임 파일이 있는지 확인 + if (success) + { + string actualPath = FindActualRuntimePath(extractPath); + success = !string.IsNullOrEmpty(actualPath); + + // 런타임을 찾지 못한 경우 디버깅 정보 표시 + if (!success) + { + string[] extractedFiles = Directory.Exists(extractPath) ? Directory.GetFiles(extractPath, "*", SearchOption.AllDirectories) : new string[0]; + string[] extractedDirs = Directory.Exists(extractPath) ? Directory.GetDirectories(extractPath, "*", SearchOption.AllDirectories) : new string[0]; + + MessageBox.Show( + $"WebView2 런타임 파일을 찾을 수 없습니다!\n\n" + + $"압축 해제 경로: {extractPath}\n" + + $"압축 해제된 파일 수: {extractedFiles.Length}\n" + + $"압축 해제된 폴더 수: {extractedDirs.Length}\n\n" + + $"상위 5개 파일:\n{string.Join("\n", extractedFiles.Take(5))}\n\n" + + $"모든 폴더:\n{string.Join("\n", extractedDirs)}", + "런타임 파일 탐색 실패", + MessageBoxButtons.OK, + MessageBoxIcon.Warning + ); + } + } + + return success; + } + } + catch (Exception) + { + return false; + } + } + + /// + /// WebView2 Fixed Version 런타임 상태 정보 반환 + /// + public static string GetWebView2Status() + { + try + { + string fixedVersionPath = GetFixedVersionPath(); + string actualRuntimePath = FindActualRuntimePath(fixedVersionPath); + + if (!string.IsNullOrEmpty(actualRuntimePath)) + { + return $"WebView2 Fixed Version 런타임이 준비되어 있습니다.\n경로: {actualRuntimePath}\n버전: 139.0.3405.86"; + } + else + { + return "WebView2 Fixed Version 런타임이 준비되어 있지 않습니다."; + } + } + catch (Exception ex) + { + return $"WebView2 Fixed Version 런타임 확인 실패: {ex.Message}"; + } + } + } +} \ No newline at end of file diff --git a/unimarc/unimarc/bin/Debug/BouncyCastle.Crypto.dll b/unimarc/unimarc/bin/Debug/BouncyCastle.Crypto.dll deleted file mode 100644 index 7a8034b..0000000 Binary files a/unimarc/unimarc/bin/Debug/BouncyCastle.Crypto.dll and /dev/null differ diff --git a/unimarc/unimarc/bin/Debug/Google.Protobuf.dll b/unimarc/unimarc/bin/Debug/Google.Protobuf.dll deleted file mode 100644 index 3683dc8..0000000 Binary files a/unimarc/unimarc/bin/Debug/Google.Protobuf.dll and /dev/null differ diff --git a/unimarc/unimarc/bin/Debug/K4os.Compression.LZ4.Streams.dll b/unimarc/unimarc/bin/Debug/K4os.Compression.LZ4.Streams.dll deleted file mode 100644 index 28695cf..0000000 Binary files a/unimarc/unimarc/bin/Debug/K4os.Compression.LZ4.Streams.dll and /dev/null differ diff --git a/unimarc/unimarc/bin/Debug/K4os.Compression.LZ4.dll b/unimarc/unimarc/bin/Debug/K4os.Compression.LZ4.dll deleted file mode 100644 index aea8e94..0000000 Binary files a/unimarc/unimarc/bin/Debug/K4os.Compression.LZ4.dll and /dev/null differ diff --git a/unimarc/unimarc/bin/Debug/K4os.Hash.xxHash.dll b/unimarc/unimarc/bin/Debug/K4os.Hash.xxHash.dll deleted file mode 100644 index ae6b96c..0000000 Binary files a/unimarc/unimarc/bin/Debug/K4os.Hash.xxHash.dll and /dev/null differ diff --git a/unimarc/unimarc/bin/Debug/MySql.Data.xml b/unimarc/unimarc/bin/Debug/MySql.Data.xml deleted file mode 100644 index f35ac41..0000000 --- a/unimarc/unimarc/bin/Debug/MySql.Data.xml +++ /dev/null @@ -1,17803 +0,0 @@ - - - - MySql.Data - - - - - The implementation of the caching_sha2_password authentication plugin. - - - - - Generates a byte array set with the password of the user in the expected format based on the - SSL settings of the current connection. - - A byte array that contains the password of the user in the expected format. - - - - Defines the stage of the authentication. - - - - - Defines the default behavior for an authentication plugin. - - - - - Gets or sets the authentication data returned by the server. - - - - - This is a factory method that is used only internally. It creates an auth plugin based on the method type - - - - - - - - - Gets the connection option settings. - - - - - Gets the server version associated with this authentication plugin. - - - - - Gets the encoding assigned to the native driver. - - - - - Sets the authentication data required to encode, encrypt, or convert the password of the user. - - A byte array containing the authentication data provided by the server. - This method may be overriden based on the requirements by the implementing authentication plugin. - - - - Defines the behavior when checking for constraints. - - This method is intended to be overriden. - - - - Throws a that encapsulates the original exception. - - The exception to encapsulate. - - - - Defines the behavior when authentication is successful. - - This method is intended to be overriden. - - - - Defines the behavior when more data is required from the server. - - The data returned by the server. - The data to return to the server. - This method is intended to be overriden. - - - - Gets the plugin name based on the authentication plugin type defined during the creation of this object. - - - - - Gets the user name associated to the connection settings. - - The user name associated to the connection settings. - - - - Gets the encoded, encrypted, or converted password based on the authentication plugin type defined during the creation of this object. - This method is intended to be overriden. - - An object containing the encoded, encrypted, or converted password. - - - - Provides functionality to read, decode and convert PEM files to objects supported in .NET. - - - - - Converts the binary data of a PEM file to an object. - - A binary representation of the public key provided by the server. - An object containing the data found in the public key. - - - - Allows connections to a user account set with the mysql_native_password authentication plugin. - - - - - Returns a byte array containing the proper encryption of the - given password/seed according to the new 4.1.1 authentication scheme. - - - - - - - - The implementation of the sha256_password authentication plugin. - - - - - The byte array representation of the public key provided by the server. - - - - - Applies XOR to the byte arrays provided as input. - - A byte array that contains the results of the XOR operation. - - - - - - - - - Defines the type of the security buffer. - - - - - Defines a security handle. - - - - - Describes a buffer allocated by a transport to pass to a security package. - - - - - Specifies the size, in bytes, of the buffer. - - - - - Bit flags that indicate the type of the buffer. - - - - - Pointer to a buffer. - - - - - Hold a numeric value used in defining other data types. - - - - - Least significant digits. - - - - - Most significant digits. - - - - - Holds a pointer used to define a security handle. - - - - - Least significant digits. - - - - - Most significant digits. - - - - - Indicates the sizes of important structures used in the message support functions. - - - - - Specifies the maximum size of the security token used in the authentication changes. - - - - - Specifies the maximum size of the signature created by the MakeSignature function. - This member must be zero if integrity services are not requested or available. - - - - - Specifies the preferred integral size of the messages. - - - - - Size of the security trailer to be appended to messages. - This member should be zero if the relevant services are not requested or available. - - - - - Allows importing large amounts of data into a database with bulk loading. - - - - - Gets or sets the connection. - - The connection. - - - - Gets or sets the field terminator. - - The field terminator. - - - - Gets or sets the line terminator. - - The line terminator. - - - - Gets or sets the name of the table. - - The name of the table. - - - - Gets or sets the character set. - - The character set. - - - - Gets or sets the name of the file. - - The name of the file. - - - - Gets or sets the timeout. - - The timeout. - - - - Gets or sets a value indicating whether the file name that is to be loaded - is local to the client or not. The default value is false. - - true if local; otherwise, false. - - - - Gets or sets the number of lines to skip. - - The number of lines to skip. - - - - Gets or sets the line prefix. - - The line prefix. - - - - Gets or sets the field quotation character. - - The field quotation character. - - - - Gets or sets a value indicating whether [field quotation optional]. - - - true if [field quotation optional]; otherwise, false. - - - - - Gets or sets the escape character. - - The escape character. - - - - Gets or sets the conflict option. - - The conflict option. - - - - Gets or sets the priority. - - The priority. - - - - Gets the columns. - - The columns. - - - - Gets the expressions. - - The expressions. - - - - Executes the load operation. - - The number of rows inserted. - - - - Asynchronous version of the load operation. - - The number of rows inserted. - - - - Executes the load operation asynchronously while the cancellation isn't requested. - - The cancellation token. - The number of rows inserted. - - - - Represents the priority set for bulk loading operations. - - - - - This is the default and indicates normal priority - - - - - Low priority will cause the load operation to wait until all readers of the table - have finished. This only affects storage engines that use only table-level locking - such as MyISAM, Memory, and Merge. - - - - - Concurrent priority is only relevant for MyISAM tables and signals that if the table - has no free blocks in the middle that other readers can retrieve data from the table - while the load operation is happening. - - - - - Represents the behavior when conflicts arise during bulk loading operations. - - - - - This is the default and indicates normal operation. In the event of a LOCAL load, this - is the same as ignore. When the data file is on the server, then a key conflict will - cause an error to be thrown and the rest of the data file ignored. - - - - - Replace column values when a key conflict occurs. - - - - - Ignore any rows where the primary key conflicts. - - - - - Summary description for CharSetMap. - - - - - Returns the text encoding for a given MySQL character set name - - Version of the connection requesting the encoding - Name of the character set to get the encoding for - Encoding object for the given character set name - - - - Initializes the mapping. - - - - Represents a SQL statement to execute against a MySQL database. This class cannot be inherited. - MySqlCommand features the following methods for executing commands at a MySQL database: - - - Item - Description - - - - ExecuteReader - - Executes commands that return rows. - - - - ExecuteNonQuery - - Executes commands such as SQL INSERT, DELETE, and UPDATE statements. - - - - ExecuteScalar - - Retrieves a single value (for example, an aggregate value) from a database. - - - - You can reset the CommandText property and reuse the MySqlCommand - object. However, you must close the MySqlDataReader - before you can execute a new or previous command. - - If a MySqlException is - generated by the method executing a MySqlCommand, the MySqlConnection - remains open. It is the responsibility of the programmer to close the connection. - - - Using the '@' symbol for paramters is now the preferred approach although the old pattern of using - '?' is still supported. Please be aware though that using '@' can cause conflicts when user variables - are also used. To help with this situation please see the documentation on the 'allow user variables' - connection string option. The 'old syntax' connection string option has now been deprecated. - - - The following example creates a MySqlCommand and - a MySqlConnection. The MySqlConnection is opened and set as the Connection - for the MySqlCommand. The example then calls ExecuteNonQuery, - and closes the connection. To accomplish this, the ExecuteNonQuery is - passed a connection string and a query string that is a SQL INSERT - statement. - - Public Sub InsertRow(myConnectionString As String) - " If the connection string is null, use a default. - If myConnectionString = "" Then - myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass" - End If - Dim myConnection As New MySqlConnection(myConnectionString) - Dim myInsertQuery As String = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)" - Dim myCommand As New MySqlCommand(myInsertQuery) - myCommand.Connection = myConnection - myConnection.Open() - myCommand.ExecuteNonQuery() - myCommand.Connection.Close() - End Sub - - - public void InsertRow(string myConnectionString) - { - // If the connection string is null, use a default. - if(myConnectionString == "") - { - myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"; - } - MySqlConnection myConnection = new MySqlConnection(myConnectionString); - string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)"; - MySqlCommand myCommand = new MySqlCommand(myInsertQuery); - myCommand.Connection = myConnection; - myConnection.Open(); - myCommand.ExecuteNonQuery(); - myCommand.Connection.Close(); - } - - - - - - - Initializes a new instance of the MySqlCommand class. - - - The following example creates a MySqlCommand and sets some of its properties. - - - This example shows how to use one of the overloaded - versions of the MySqlCommand constructor. For other examples that might be available, - see the individual overload topics. - - - - Public Sub CreateMySqlCommand() - Dim myConnection As New MySqlConnection _ - ("Persist Security Info=False;database=test;server=myServer") - myConnection.Open() - Dim myTrans As MySqlTransaction = myConnection.BeginTransaction() - Dim mySelectQuery As String = "SELECT * FROM MyTable" - Dim myCommand As New MySqlCommand(mySelectQuery, myConnection, myTrans) - myCommand.CommandTimeout = 20 - End Sub - - - public void CreateMySqlCommand() - { - MySqlConnection myConnection = new MySqlConnection("Persist Security Info=False; - database=test;server=myServer"); - myConnection.Open(); - MySqlTransaction myTrans = myConnection.BeginTransaction(); - string mySelectQuery = "SELECT * FROM myTable"; - MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection,myTrans); - myCommand.CommandTimeout = 20; - } - - - public: - void CreateMySqlCommand() - { - MySqlConnection* myConnection = new MySqlConnection(S"Persist Security Info=False; - database=test;server=myServer"); - myConnection->Open(); - MySqlTransaction* myTrans = myConnection->BeginTransaction(); - String* mySelectQuery = S"SELECT * FROM myTable"; - MySqlCommand* myCommand = new MySqlCommand(mySelectQuery, myConnection, myTrans); - myCommand->CommandTimeout = 20; - }; - - - - Initializes a new instance of the MySqlCommand class. - - The base constructor initializes all fields to their default values. The - following table shows initial property values for an instance of . - - - Properties - Initial Value - - - - - - empty string ("") - - - - - - 0 - - - - - - CommandType.Text - - - - - - Null - - - - You can change the value for any of these properties through a separate call to - the property. - - - The following example creates a and - sets some of its properties. - - - Public Sub CreateMySqlCommand() - Dim myCommand As New MySqlCommand() - myCommand.CommandType = CommandType.Text - End Sub - - - public void CreateMySqlCommand() - { - MySqlCommand myCommand = new MySqlCommand(); - myCommand.CommandType = CommandType.Text; - } - - - - - - Initializes a new instance of the class with the text of the query. - The text of the query. - When an instance of is created, - the following read/write properties are set to initial values. - - - - Properties - Initial Value - - - - - - - cmdText - - - - - - - 0 - - - - - - CommandType.Text - - - - - - Null - - - - You can change the value for any of these properties through a separate call to - the property. - - - The following example creates a and - sets some of its properties. - - - Public Sub CreateMySqlCommand() - Dim sql as String = "SELECT * FROM mytable" - Dim myCommand As New MySqlCommand(sql) - myCommand.CommandType = CommandType.Text - End Sub - - - public void CreateMySqlCommand() - { - string sql = "SELECT * FROM mytable"; - MySqlCommand myCommand = new MySqlCommand(sql); - myCommand.CommandType = CommandType.Text; - } - - - - - - Initializes a new instance of the class - with the text of the query and a . - The text of the query. - A that represents the - connection to an instance of SQL Server. - - When an instance of is created, - the following read/write properties are set to initial values. - - - - Properties - Initial Value - - - - - - - cmdText - - - - - - - 0 - - - - - - CommandType.Text - - - - - - - connection - - - - - You can change the value for any of these properties through a separate call to - the property. - - - The following example creates a and - sets some of its properties. - - - Public Sub CreateMySqlCommand() - Dim conn as new MySqlConnection("server=myServer") - Dim sql as String = "SELECT * FROM mytable" - Dim myCommand As New MySqlCommand(sql, conn) - myCommand.CommandType = CommandType.Text - End Sub - - - public void CreateMySqlCommand() - { - MySqlConnection conn = new MySqlConnection("server=myserver") - string sql = "SELECT * FROM mytable"; - MySqlCommand myCommand = new MySqlCommand(sql, conn); - myCommand.CommandType = CommandType.Text; - } - - - - - - Initializes a new instance of the class - with the text of the query, a , and the - . - The text of the query. - A that represents the - connection to an instance of SQL Server. - - The in which the executes. - - When an instance of is created, - the following read/write properties are set to initial values. - - - - Properties - Initial Value - - - - - - - cmdText - - - - - - - 0 - - - - - - CommandType.Text - - - - - - - connection - - - - - You can change the value for any of these properties through a separate call to - the property. - - - The following example creates a and - sets some of its properties. - - - Public Sub CreateMySqlCommand() - Dim conn as new MySqlConnection("server=myServer") - conn.Open(); - Dim txn as MySqlTransaction = conn.BeginTransaction() - Dim sql as String = "SELECT * FROM mytable" - Dim myCommand As New MySqlCommand(sql, conn, txn) - myCommand.CommandType = CommandType.Text - End Sub - - - public void CreateMySqlCommand() - { - MySqlConnection conn = new MySqlConnection("server=myserver") - conn.Open(); - MySqlTransaction txn = conn.BeginTransaction(); - string sql = "SELECT * FROM mytable"; - MySqlCommand myCommand = new MySqlCommand(sql, conn, txn); - myCommand.CommandType = CommandType.Text; - } - - - - - - Gets the last inserted id. - - - - - - Gets or sets the SQL statement to execute at the data source. - - The SQL statement or stored procedure to execute. The default is an empty string. - - - When the property is set to StoredProcedure, - the CommandText property should be set to the name of the stored procedure. - The user may be required to use escape character syntax if the stored procedure name - contains any special characters. The command executes this stored procedure when - you call one of the Execute methods. Starting with Connector/NET 5.0, having both a stored function - and stored procedure with the same name in the same database is not supported. It is - suggested that you provide unqiue names for your stored routines. - - - The following example creates a and sets some of its properties. - - Public Sub CreateMySqlCommand() - Dim myCommand As New MySqlCommand() - myCommand.CommandText = "SELECT * FROM Mytable ORDER BY id" - myCommand.CommandType = CommandType.Text - End Sub - - - public void CreateMySqlCommand() - { - MySqlCommand myCommand = new MySqlCommand(); - myCommand.CommandText = "SELECT * FROM mytable ORDER BY id"; - myCommand.CommandType = CommandType.Text; - } - - - - - - Gets or sets the wait time before terminating the attempt to execute a command - and generating an error. - - The time (in seconds) to wait for the command to execute. The default is 30 - seconds. - - CommandTimeout is dependent on the ability of MySQL to cancel an executing query. - Because of this, CommandTimeout is only supported when connected to MySQL - version 5.0.0 or higher. - - - - - Gets or sets a value indicating how the property is to be interpreted. - - One of the values. The default is Text. - - - When you set the CommandType property to StoredProcedure, you - should set the property to the name of the stored - procedure. The command executes this stored procedure when you call one of the - Execute methods. - - - The following example creates a and sets some of its properties. - - Public Sub CreateMySqlCommand() - Dim myCommand As New MySqlCommand() - myCommand.CommandType = CommandType.Text - End Sub - - - public void CreateMySqlCommand() - { - MySqlCommand myCommand = new MySqlCommand(); - myCommand.CommandType = CommandType.Text; - } - - - - - - Gets a boolean value that indicates whether the Prepared method has been called. - - - - - - Gets or sets the used by this instance of the - . - - The connection to a data source. The default value is a null reference - (Nothing in Visual Basic). - - - If you set Connection while a transaction is in progress and the - property is not null, an - is generated. If the Transaction property is not null and the transaction - has already been committed or rolled back, Transaction is set to - null. - - - The following example creates a and sets some of its properties. - - Public Sub CreateMySqlCommand() - Dim mySelectQuery As String = "SELECT * FROM mytable ORDER BY id" - Dim myConnectString As String = "Persist Security Info=False;database=test;server=myServer" - Dim myCommand As New MySqlCommand(mySelectQuery) - myCommand.Connection = New MySqlConnection(myConnectString) - myCommand.CommandType = CommandType.Text - End Sub - - - public void CreateMySqlCommand() - { - string mySelectQuery = "SELECT * FROM mytable ORDER BY id"; - string myConnectString = "Persist Security Info=False;database=test;server=myServer"; - MySqlCommand myCommand = new MySqlCommand(mySelectQuery); - myCommand.Connection = new MySqlConnection(myConnectString); - myCommand.CommandType = CommandType.Text; - } - - - - - - Get the - - The parameters of the SQL statement or stored procedure. The default is - an empty collection. - - Connector/NET does not support unnamed parameters. Every parameter added to the collection must - have an associated name. - - The following example creates a and displays its parameters. - To accomplish this, the method is passed a , a query string - that is a SQL SELECT statement, and an array of objects. - - Public Sub CreateMySqlCommand(myConnection As MySqlConnection, _ - mySelectQuery As String, myParamArray() As MySqlParameter) - Dim myCommand As New MySqlCommand(mySelectQuery, myConnection) - myCommand.CommandText = "SELECT id, name FROM mytable WHERE age=@age" - myCommand.UpdatedRowSource = UpdateRowSource.Both - myCommand.Parameters.Add(myParamArray) - Dim j As Integer - For j = 0 To myCommand.Parameters.Count - 1 - myCommand.Parameters.Add(myParamArray(j)) - Next j - Dim myMessage As String = "" - Dim i As Integer - For i = 0 To myCommand.Parameters.Count - 1 - myMessage += myCommand.Parameters(i).ToString() & ControlChars.Cr - Next i - Console.WriteLine(myMessage) - End Sub - - - public void CreateMySqlCommand(MySqlConnection myConnection, string mySelectQuery, - MySqlParameter[] myParamArray) - { - MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection); - myCommand.CommandText = "SELECT id, name FROM mytable WHERE age=@age"; - myCommand.Parameters.Add(myParamArray); - for (int j=0; j<myParamArray.Length; j++) - { - myCommand.Parameters.Add(myParamArray[j]) ; - } - string myMessage = ""; - for (int i = 0; i < myCommand.Parameters.Count; i++) - { - myMessage += myCommand.Parameters[i].ToString() + "\n"; - } - MessageBox.Show(myMessage); - } - - - - - - Gets or sets the within which the executes. - - The . The default value is a null reference (Nothing in Visual Basic). - - You cannot set the Transaction property if it is already set to a - specific value, and the command is in the process of executing. If you set the - transaction property to a object that is not connected - to the same as the object, - an exception will be thrown the next time you attempt to execute a statement. - - - - - Gets or sets a boolean value that indicates whether caching is enabled. - - - - - Gets or sets the seconds for how long a TableDirect result should be cached. - - - - - Gets or sets how command results are applied to the DataRow when used by the - Update method of the DbDataAdapter. - - - - - Gets or sets a value indicating whether the command object should be visible in a Windows Form Designer control. - - - - - Attempts to cancel the execution of a currently active command - - - Cancelling a currently active query only works with MySQL versions 5.0.0 and higher. - - - - - Creates a new instance of a object. - - - This method is a strongly-typed version of . - - A object. - - - - - Check the connection to make sure - - it is open - - it is not currently being used by a reader - - and we have the right version of MySQL for the requested command type - - - - - Executes a SQL statement against the connection and returns the number of rows affected. - Number of rows affected - You can use ExecuteNonQuery to perform any type of database operation, - however any resultsets returned will not be available. Any output parameters - used in calling a stored procedure will be populated with data and can be - retrieved after execution is complete. - For UPDATE, INSERT, and DELETE statements, the return value is the number - of rows affected by the command. For all other types of statements, the return - value is -1. - - The following example creates a MySqlCommand and then - executes it using ExecuteNonQuery. The example is passed a string that is a - SQL statement (such as UPDATE, INSERT, or DELETE) and a string to use to - connect to the data source. - - Public Sub CreateMySqlCommand(myExecuteQuery As String, myConnection As MySqlConnection) - Dim myCommand As New MySqlCommand(myExecuteQuery, myConnection) - myCommand.Connection.Open() - myCommand.ExecuteNonQuery() - myConnection.Close() - End Sub - - - public void CreateMySqlCommand(string myExecuteQuery, MySqlConnection myConnection) - { - MySqlCommand myCommand = new MySqlCommand(myExecuteQuery, myConnection); - myCommand.Connection.Open(); - myCommand.ExecuteNonQuery(); - myConnection.Close(); - } - - - - - - Reset reader to null, to avoid "There is already an open data reader" - on the next ExecuteReader(). Used in error handling scenarios. - - - - - Reset SQL_SELECT_LIMIT that could have been modified by CommandBehavior. - - - - - Sends the to the Connection - and builds a . - - A object. - - - When the property is set to StoredProcedure, - the property should be set to the name of the stored - procedure. The command executes this stored procedure when you call - ExecuteReader. - - - While the is in use, the associated - is busy serving the MySqlDataReader. - While in this state, no other operations can be performed on the - MySqlConnection other than closing it. This is the case until the - method of the MySqlDataReader is called. - - - The following example creates a , then executes it by - passing a string that is a SQL SELECT statement, and a string to use to connect to the - data source. - - Public Sub CreateMySqlDataReader(mySelectQuery As String, myConnection As MySqlConnection) - Dim myCommand As New MySqlCommand(mySelectQuery, myConnection) - myConnection.Open() - Dim myReader As MySqlDataReader - myReader = myCommand.ExecuteReader() - Try - While myReader.Read() - Console.WriteLine(myReader.GetString(0)) - End While - Finally - myReader.Close - myConnection.Close - End Try - End Sub - - - public void CreateMySqlDataReader(string mySelectQuery, MySqlConnection myConnection) - { - MySqlCommand myCommand = new MySqlCommand(mySelectQuery, myConnection); - myConnection.Open(); - MMySqlDataReader myReader; - myReader = myCommand.ExecuteReader(); - try - { - while(myReader.Read()) - { - Console.WriteLine(myReader.GetString(0)); - } - } - finally - { - myReader.Close(); - myConnection.Close(); - } - } - - - - - - Sends the to the Connection, - and builds a using one of the values. - - One of the values. - - - When the property is set to StoredProcedure, - the property should be set to the name of the stored - procedure. The command executes this stored procedure when you call - ExecuteReader. - - - The supports a special mode that enables large binary - values to be read efficiently. For more information, see the SequentialAccess - setting for . - - - While the is in use, the associated - is busy serving the MySqlDataReader. - While in this state, no other operations can be performed on the - MySqlConnection other than closing it. This is the case until the - method of the MySqlDataReader is called. - If the MySqlDataReader is created with CommandBehavior set to - CloseConnection, closing the MySqlDataReader closes the connection - automatically. - - - When calling ExecuteReader with the SingleRow behavior, you should be aware that using a limit - clause in your SQL will cause all rows (up to the limit given) to be retrieved by the client. The - method will still return false after the first row but pulling all rows of data - into the client will have a performance impact. If the limit clause is not necessary, it should - be avoided. - - - A object. - - - - - Executes the query, and returns the first column of the first row in the - result set returned by the query. Extra columns or rows are ignored. - - The first column of the first row in the result set, or a null reference if the - result set is empty - - - Use the ExecuteScalar method to retrieve a single value (for example, - an aggregate value) from a database. This requires less code than using the - method, and then performing the operations necessary - to generate the single value using the data returned by a - - - The following example creates a and then - executes it using ExecuteScalar. The example is passed a string that is a - SQL statement that returns an aggregate result, and a string to use to - connect to the data source. - - - Public Sub CreateMySqlCommand(myScalarQuery As String, myConnection As MySqlConnection) - Dim myCommand As New MySqlCommand(myScalarQuery, myConnection) - myCommand.Connection.Open() - myCommand.ExecuteScalar() - myConnection.Close() - End Sub - - - public void CreateMySqlCommand(string myScalarQuery, MySqlConnection myConnection) - { - MySqlCommand myCommand = new MySqlCommand(myScalarQuery, myConnection); - myCommand.Connection.Open(); - myCommand.ExecuteScalar(); - myConnection.Close(); - } - - - public: - void CreateMySqlCommand(String* myScalarQuery, MySqlConnection* myConnection) - { - MySqlCommand* myCommand = new MySqlCommand(myScalarQuery, myConnection); - myCommand->Connection->Open(); - myCommand->ExecuteScalar(); - myConnection->Close(); - } - - - - - - - - - - Creates a prepared version of the command on an instance of MySQL Server. - - - Prepared statements are only supported on MySQL version 4.1 and higher. Calling - prepare while connected to earlier versions of MySQL will succeed but will execute - the statement in the same way as unprepared. - - - The following example demonstrates the use of the Prepare method. - - public sub PrepareExample() - Dim cmd as New MySqlCommand("INSERT INTO mytable VALUES (@val)", myConnection) - cmd.Parameters.Add( "@val", 10 ) - cmd.Prepare() - cmd.ExecuteNonQuery() - - cmd.Parameters(0).Value = 20 - cmd.ExecuteNonQuery() - end sub - - - private void PrepareExample() - { - MySqlCommand cmd = new MySqlCommand("INSERT INTO mytable VALUES (@val)", myConnection); - cmd.Parameters.Add( "@val", 10 ); - cmd.Prepare(); - cmd.ExecuteNonQuery(); - - cmd.Parameters[0].Value = 20; - cmd.ExecuteNonQuery(); - } - - - - - - Initiates the asynchronous execution of the SQL statement or stored procedure - that is described by this , and retrieves one or more - result sets from the server. - - An that can be used to poll, wait for results, - or both; this value is also needed when invoking EndExecuteReader, - which returns a instance that can be used to retrieve - the returned rows. - - - - Initiates the asynchronous execution of the SQL statement or stored procedure - that is described by this using one of the - CommandBehavior values. - - One of the values, indicating - options for statement execution and data retrieval. - An that can be used to poll, wait for results, - or both; this value is also needed when invoking EndExecuteReader, - which returns a instance that can be used to retrieve - the returned rows. - - - - Finishes asynchronous execution of a SQL statement, returning the requested - . - - The returned by the call to - . - A MySqlDataReader object that can be used to retrieve the requested rows. - - - - Initiates the asynchronous execution of the SQL statement or stored procedure - that is described by this . - - - An delegate that is invoked when the command's - execution has completed. Pass a null reference (Nothing in Visual Basic) - to indicate that no callback is required. - A user-defined state object that is passed to the - callback procedure. Retrieve this object from within the callback procedure - using the property. - An that can be used to poll or wait for results, - or both; this value is also needed when invoking , - which returns the number of affected rows. - - - - Initiates the asynchronous execution of the SQL statement or stored procedure - that is described by this . - - An that can be used to poll or wait for results, - or both; this value is also needed when invoking , - which returns the number of affected rows. - - - - Finishes asynchronous execution of a SQL statement. - - The returned by the call - to . - - - - - Verifies if a query is valid even if it has not spaces or is a stored procedure call - - Query to validate - If it is necessary to add call statement - - - - Creates a clone of this object. CommandText, Connection, and Transaction properties - are included as well as the entire parameter list. - - The cloned object. - - - - Summary description for API. - - - - - Summary description for CompressedStream. - - - - - Represents an open connection to a MySQL Server database. This class cannot be inherited. - - - A MySqlConnection object represents a session to a MySQL Server - data source. When you create an instance of MySqlConnection, all - properties are set to their initial values. For a list of these values, see the - MySqlConnection constructor. - - - - If the MySqlConnection goes out of scope, it is not closed. Therefore, - you must explicitly close the connection by calling - or . - - - The following example creates a and - a MySqlConnection. The MySqlConnection is opened and set as the - for the MySqlCommand. The example then calls - , and closes the connection. To accomplish this, the ExecuteNonQuery is - passed a connection string and a query string that is a SQL INSERT - statement. - - - Public Sub InsertRow(myConnectionString As String) - ' If the connection string is null, use a default. - If myConnectionString = "" Then - myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass" - End If - Dim myConnection As New MySqlConnection(myConnectionString) - Dim myInsertQuery As String = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)" - Dim myCommand As New MySqlCommand(myInsertQuery) - myCommand.Connection = myConnection - myConnection.Open() - myCommand.ExecuteNonQuery() - myCommand.Connection.Close() - End Sub - - - - - public void InsertRow(string myConnectionString) - { - // If the connection string is null, use a default. - if(myConnectionString == "") - { - myConnectionString = "Database=Test;Data Source=localhost;User Id=username;Password=pass"; - } - MySqlConnection myConnection = new MySqlConnection(myConnectionString); - string myInsertQuery = "INSERT INTO Orders (id, customerId, amount) Values(1001, 23, 30.66)"; - MySqlCommand myCommand = new MySqlCommand(myInsertQuery); - myCommand.Connection = myConnection; - myConnection.Open(); - myCommand.ExecuteNonQuery(); - myCommand.Connection.Close(); - } - - - - - - - The client used to handle SSH connections. - - - - Occurs when MySQL returns warnings as a result of executing a command or query. - - - - - Initializes a new instance of the class. - - When a new instance of is created, the read/write - properties are set to the following initial values unless they are specifically - set using their associated keywords in the property. - - - - Properties - Initial Value - - - - - - empty string ("") - - - - - - 15 - - - - - - empty string ("") - - - - - - empty string ("") - - - - - - empty string ("") - - - - You can change the value for these properties only by using the ConnectionString property. - - - - Initializes a new instance of the class. - - - - - - Initializes a new instance of the class when given a string containing the connection string. - - When a new instance of is created, the read/write - properties are set to the following initial values unless they are specifically - set using their associated keywords in the property. - - - - Properties - Initial Value - - - - - - empty string ("") - - - - - - 15 - - - - - - empty string ("") - - - - - - empty string ("") - - - - - - empty string ("") - - - - You can change the value for these properties only by using the ConnectionString property. - - The connection properties used to open the MySQL database. - - - - Determines whether the connection is a clone of other connection. - - - - - Returns the id of the server thread this connection is executing on - - - - - Gets the name of the MySQL server to which to connect. - - - - - Gets the time to wait while trying to establish a connection before terminating the attempt and generating an error. - The value set is less than 0. - A value of 0 indicates no limit, and should be avoided in a - because an attempt to connect - will wait indefinitely. - - The following example creates a MySqlConnection - and sets some of its properties in the connection string. - - Public Sub CreateSqlConnection() - Dim myConnection As New MySqlConnection() - myConnection.ConnectionString = "Persist Security Info=False;Username=user;Password=pass;database=test1;server=localhost;Connect Timeout=30" - myConnection.Open() - End Sub - - - public void CreateSqlConnection() - { - MySqlConnection myConnection = new MySqlConnection(); - myConnection.ConnectionString = "Persist Security Info=False;Username=user;Password=pass;database=test1;server=localhost;Connect Timeout=30"; - myConnection.Open(); - } - - - - - Gets the name of the current database or the database to be used after a connection is opened.The name of the current database or the name of the database to be used after a connection is opened. The default value is an empty string. - - The Database property does not update dynamically. - If you change the current database using a SQL statement, then this property - may reflect the wrong value. If you change the current database using the - method, this property is updated to reflect the new database. - - - The following example creates a and displays - some of its read-only properties. - - - Public Sub CreateMySqlConnection() - Dim myConnString As String = _ - "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass" - Dim myConnection As New MySqlConnection( myConnString ) - myConnection.Open() - MessageBox.Show( "Server Version: " + myConnection.ServerVersion _ - + ControlChars.NewLine + "Database: " + myConnection.Database ) - myConnection.ChangeDatabase( "test2" ) - MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion _ - + ControlChars.NewLine + "Database: " + myConnection.Database ) - myConnection.Close() - End Sub - - - - public void CreateMySqlConnection() - { - string myConnString = - "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass"; - MySqlConnection myConnection = new MySqlConnection( myConnString ); - myConnection.Open(); - MessageBox.Show( "Server Version: " + myConnection.ServerVersion - + "\nDatabase: " + myConnection.Database ); - myConnection.ChangeDatabase( "test2" ); - MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion - + "\nDatabase: " + myConnection.Database ); - myConnection.Close(); - } - - - - - - Indicates if this connection should use compression when communicating with the server. - - - - Gets the current state of the connection. - A bitwise combination of the values. The default is Closed. - - The allowed state changes are: - - - From Closed to Open, using the Open method of the connection object. - - - From Open to Closed, using either the Close method or the Dispose method of the connection object. - - - - The following example creates a , opens it, - displays some of its properties, then closes the connection. - - - Public Sub CreateMySqlConnection(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ - + ControlChars.Cr + "State: " + myConnection.State.ToString()) - myConnection.Close() - End Sub - - - public void CreateMySqlConnection(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + - "\nState: " + myConnection.State.ToString()); - myConnection.Close(); - } - - - - - Gets a string containing the version of the MySQL server to which the client is connected.The version of the instance of MySQL.The connection is closed. - The following example creates a , opens it, - displays some of its properties, then closes the connection. - - - Public Sub CreateMySqlConnection(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ - + ControlChars.Cr + "State: " + myConnection.State.ToString()) - myConnection.Close() - End Sub - - - public void CreateMySqlConnection(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + - "\nState: " + myConnection.State.ToString()); - myConnection.Close(); - } - - - - - - Gets or sets the string used to connect to a MySQL Server database. - - - The ConnectionString returned may not be exactly like what was originally - set but will be indentical in terms of keyword/value pairs. Security information - will not be included unless the Persist Security Info value is set to true. - - - You can use the ConnectionString property to connect to a database. - The following example illustrates a typical connection string. - - "Persist Security Info=False;database=MyDB;server=MySqlServer;user id=myUser;Password=myPass" - - The ConnectionString property can be set only when the connection is - closed. Many of the connection string values have corresponding read-only - properties. When the connection string is set, all of these properties are - updated, except when an error is detected. In this case, none of the properties - are updated. properties return only those settings contained in the - ConnectionString. - - - To connect to a local machine, specify "localhost" for the server. If you do not - specify a server, localhost is assumed. - - - Resetting the ConnectionString on a closed connection resets all - connection string values (and related properties) including the password. For - example, if you set a connection string that includes "Database= MyDb", and - then reset the connection string to "Data Source=myserver;User Id=myUser;Password=myPass", - the property is no longer set to MyDb. - - - The connection string is parsed immediately after being set. If errors in - syntax are found when parsing, a runtime exception, such as , - is generated. Other errors can be found only when an attempt is made to open the - connection. - - - The basic format of a connection string consists of a series of keyword/value - pairs separated by semicolons. The equal sign (=) connects each keyword and its - value. To include values that contain a semicolon, single-quote character, or - double-quote character, the value must be enclosed in double quotes. If the - value contains both a semicolon and a double-quote character, the value can be - enclosed in single quotes. The single quote is also useful if the value begins - with a double-quote character. Conversely, the double quote can be used if the - value begins with a single quote. If the value contains both single-quote and - double-quote characters, the quote character used to enclose the value must be - doubled each time it occurs within the value. - - - To include preceding or trailing spaces in the string value, the value must - be enclosed in either single quotes or double quotes. Any leading or trailing - spaces around integer, Boolean, or enumerated values are ignored, even if - enclosed in quotes. However, spaces within a string literal keyword or value are - preserved. Using .NET Framework version 1.1, single or double quotes may be used - within a connection string without using delimiters (for example, Data Source= - my'Server or Data Source= my"Server), unless a quote character is the first or - last character in the value. - - - To include an equal sign (=) in a keyword or value, it must be preceded by - another equal sign. For example, in the hypothetical connection string - - "key==word=value" - - the keyword is "key=word" and the value is "value". - - If a specific keyword in a keyword= value pair occurs multiple times in a - connection string, the last occurrence listed is used in the value set. - - Keywords are not case sensitive. - - The following table lists the valid names for keyword values within the - ConnectionString. - - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDefaultDescription
- Connect Timeout -or- Connection Timeout - 15 - The length of time (in seconds) to wait for a connection to the server before - terminating the attempt and generating an error. -
- Host -or- Server -or- Data Source -or- - DataSource -or- Address -or- Addr -or- - Network Address - localhost - - The name or network address of the instance of MySQL to which to connect. Multiple hosts can be - specified separated by &. This can be useful where multiple MySQL servers are configured for replication - and you are not concerned about the precise server you are connecting to. No attempt is made by the provider to - synchronize writes to the database so care should be taken when using this option. - - - In Unix environment with Mono, this can be a fully qualified path to MySQL socket filename. With this configuration, the Unix socket will be used instead of TCP/IP socket. - Currently only a single socket name can be given so accessing MySQL in a replicated environment using Unix sockets is not currently supported. - -
Port3306 - The port MySQL is using to listen for connections. This value is ignored if the connection protocol - is anything but socket. -
Protocolsocket - Specifies the type of connection to make to the server.Values can be: - socket or tcp for a socket connection
- pipe for a named pipe connection
- unix for a Unix socket connection
- memory to use MySQL shared memory -
- CharSet -or Character Set - - - Specifies the character set that should be used to encode all queries sent to the server. - Resultsets are still returned in the character set of the data returned. -
LoggingfalseWhen true, various pieces of information is output to any configured TraceListeners.
Allow Batchtrue - When true, multiple SQL statements can be sent with one command execution.

- -Note-
- Starting with MySQL 4.1.1, batch statements should be separated by the server-defined seperator character.
- Commands sent to earlier versions of MySQL should be seperated with ';'. -
Encryptfalse - When true, SSL/TLS encryption is used for all data sent between the - client and server if the server has a certificate installed. Recognized values - are true, false, yes, and no. -
- Initial Catalog -or- Database - mysqlThe name of the database to use intially
- Password -or- pwd - - The password for the MySQL account being used.
Persist Security Infofalse - When set to false or no (strongly recommended), security-sensitive - information, such as the password, is not returned as part of the connection if - the connection is open or has ever been in an open state. Resetting the - connection string resets all connection string values including the password. - Recognized values are true, false, yes, and no. -
- User Id -or- Username -or- Uid -or- User name - - The MySQL login account being used.
Shared Memory NameMYSQLThe name of the shared memory object to use for communication if the connection protocol is set to memory.
Allow Zero Datetimefalse - True to have MySqlDataReader.GetValue() return a MySqlDateTime for date or datetime columns that have illegal values. - False will cause a DateTime object to be returned for legal values and an exception will be thrown for illegal values. -
Convert Zero Datetimefalse - True to have MySqlDataReader.GetValue() and MySqlDataReader.GetDateTime() - return DateTime.MinValue for date or datetime columns that have illegal values. -
- Pipe Name -or- Pipe - mysql - When set to the name of a named pipe, the MySqlConnection will attempt to connect to MySQL - on that named pipe.

This settings only applies to the Windows platform. -
- Use Performance Monitor -or- UsePerformanceMonitor - false - Posts performance data that can be tracked using perfmon -
- Procedure Cache Size - 25 - How many stored procedure definitions can be held in the cache -
- Ignore Prepare - true - Instructs the provider to ignore any attempts to prepare commands. This option - was added to allow a user to disable prepared statements in an entire application - without modifying the code. A user might want to do this if errors or bugs are - encountered with MySQL prepared statements. -
Use Procedure Bodiestrue - Instructs the provider to attempt to call the procedure without first resolving the metadata. This - is useful in situations where the calling user does not have access to the mysql.proc table. To - use this mode, the parameters for the procedure must be added to the command in the same order - as they appear in the procedure definition and their types must be explicitly set. -
Auto Enlisttrue - Indicates whether the connection should automatically enlist in the current transaction, - if there is one. -
Respect Binary Flagstrue - Indicates whether the connection should respect all binary flags sent to the client - as part of column metadata. False will cause the connector to behave like - Connector/NET 5.0 and earlier. -
BlobAsUTF8IncludePatternnull - Pattern that should be used to indicate which blob columns should be treated as UTF-8. -
BlobAsUTF8ExcludePatternnull - Pattern that should be used to indicate which blob columns should not be treated as UTF-8. -
Default Command Timeout30 - The default timeout that new MySqlCommand objects will use unless changed. -
Allow User Variablesfalse - Should the provider expect user variables in the SQL. -
Interactive -or- Interactive Sessionfalse - Should this session be considered interactive? -
Functions Return Stringfalse - Set this option to true to force the return value of SQL functions to be string. -
Use Affected Rowsfalse - Set this option to true to cause the affected rows reported to reflect only the - rows that are actually changed. By default, the number of rows that are matched - is returned. -
-
- - The following table lists the valid names for connection pooling values within - the ConnectionString. For more information about connection pooling, see - Connection Pooling for the MySql Data Provider. - -
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
NameDefaultDescription
Connection Lifetime0 - When a connection is returned to the pool, its creation time is compared with - the current time, and the connection is destroyed if that time span (in seconds) - exceeds the value specified by Connection Lifetime. This is useful in - clustered configurations to force load balancing between a running server and a - server just brought online. - - A value of zero (0) causes pooled connections to have the maximum connection - timeout. - -
Max Pool Size100The maximum number of connections allowed in the pool.
Min Pool Size0The minimum number of connections allowed in the pool.
Poolingtrue - When true, the MySqlConnection object is drawn from the appropriate - pool, or if necessary, is created and added to the appropriate pool. Recognized - values are true, false, yes, and no. -
Connection Resetfalse - Specifies whether the database connection should be reset when being - drawn from the pool. Leaving this as false will yeild much faster - connection opens but the user should understand the side effects - of doing this such as temporary tables and user variables from the previous - session not being cleared out. -
Cache Server Propertiesfalse - Specifies whether the server variables are cached between pooled connections. - On systems where the variables change infrequently and there are lots of - connection attempts, this can speed up things dramatically. -
-
- - When setting keyword or connection pooling values that require a Boolean - value, you can use 'yes' instead of 'true', and 'no' instead of 'false'. - - - Note The MySql Data Provider uses the native socket protocol to - communicate with MySQL. Therefore, it does not support the use of an ODBC data source name (DSN) when - connecting to MySQL because it does not add an ODBC layer. - - - CAUTION In this release, the application should use caution when constructing a - connection string based on user input (for example when retrieving user ID and password information from a - dialog box, and appending it to the connection string). The application should - ensure that a user cannot embed extra connection string parameters in these - values (for example, entering a password as "validpassword;database=somedb" in - an attempt to attach to a different database). - -
- The following example creates a and sets some of its properties - - Public Sub CreateConnection() - Dim myConnection As New MySqlConnection() - myConnection.ConnectionString = "Persist Security Info=False;database=myDB;server=myHost;Connect Timeout=30;user id=myUser; pwd=myPass" - myConnection.Open() - End Sub 'CreateConnection - - - public void CreateConnection() - { - MySqlConnection myConnection = new MySqlConnection(); - myConnection.ConnectionString = "Persist Security Info=False;database=myDB;server=myHost;Connect Timeout=30;user id=myUser; pwd=myPass"; - myConnection.Open(); - } - - - The following example creates a in Unix environment with Mono installed. MySQL socket filename used in this example is "/var/lib/mysql/mysql.sock". The actual filename depends on your MySQL configuration. - - Public Sub CreateConnection() - Dim myConnection As New MySqlConnection() - myConnection.ConnectionString = "database=myDB;server=/var/lib/mysql/mysql.sock;user id=myUser; pwd=myPass" - myConnection.Open() - End Sub 'CreateConnection - - - public void CreateConnection() - { - MySqlConnection myConnection = new MySqlConnection(); - myConnection.ConnectionString = "database=myDB;server=/var/lib/mysql/mysql.sock;user id=myUser; pwd=myPass"; - myConnection.Open(); - } - - -
- - - Gets a boolean value that indicates whether the password associated to the connection is expired. - - - - Begins a database transaction.An object representing the new transaction.Parallel transactions are not supported. - This command is equivalent to the MySQL BEGIN TRANSACTION command. - - You must explicitly commit or roll back the transaction using the or - method. - - If you do not specify an isolation level, the default isolation level is used. To specify an isolation - level with the method, use the overload that takes the iso parameter. Also - note that any attempt to begin a transaction while a transaction is in progress will throw an exception on MySQL 4.1 and higher. - On MySQL 4.0, an exception will not be thrown because servers 4.0 and earlier did not report their transacation status. - - - - The following example creates a and a - . It also demonstrates how to use the BeginTransaction, a - , and methods. - - Public Sub RunTransaction(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - - Dim myCommand As MySqlCommand = myConnection.CreateCommand() - Dim myTrans As MySqlTransaction - - ' Start a local transaction - myTrans = myConnection.BeginTransaction() - ' Must assign both transaction object and connection - ' to Command object for a pending local transaction - myCommand.Connection = myConnection - myCommand.Transaction = myTrans - - Try - myCommand.CommandText = "Insert into Test (id, desc) VALUES (100, 'Description')" - myCommand.ExecuteNonQuery() - myCommand.CommandText = "Insert into Test (id, desc) VALUES (101, 'Description')" - myCommand.ExecuteNonQuery() - myTrans.Commit() - Console.WriteLine("Both records are written to database.") - Catch e As Exception - Try - myTrans.Rollback() - Catch ex As MySqlException - If Not myTrans.Connection Is Nothing Then - Console.WriteLine("An exception of type " + ex.GetType().ToString() + _ - " was encountered while attempting to roll back the transaction.") - End If - End Try - - Console.WriteLine("An exception of type " + e.GetType().ToString() + _ - "was encountered while inserting the data.") - Console.WriteLine("Neither record was written to database.") - Finally - myConnection.Close() - End Try - End Sub - - - public void RunTransaction(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - - MySqlCommand myCommand = myConnection.CreateCommand(); - MySqlTransaction myTrans; - - // Start a local transaction - myTrans = myConnection.BeginTransaction(); - // Must assign both transaction object and connection - // to Command object for a pending local transaction - myCommand.Connection = myConnection; - myCommand.Transaction = myTrans; - - try - { - myCommand.CommandText = "insert into Test (id, desc) VALUES (100, 'Description')"; - myCommand.ExecuteNonQuery(); - myCommand.CommandText = "insert into Test (id, desc) VALUES (101, 'Description')"; - myCommand.ExecuteNonQuery(); - myTrans.Commit(); - Console.WriteLine("Both records are written to database."); - } - catch(Exception e) - { - try - { - myTrans.Rollback(); - } - catch (SqlException ex) - { - if (myTrans.Connection != null) - { - Console.WriteLine("An exception of type " + ex.GetType() + - " was encountered while attempting to roll back the transaction."); - } - } - - Console.WriteLine("An exception of type " + e.GetType() + - " was encountered while inserting the data."); - Console.WriteLine("Neither record was written to database."); - } - finally - { - myConnection.Close(); - } - } - - - - - Begins a database transaction with the specified isolation level.The isolation level under which the transaction should run. An object representing the new transaction.Parallel exceptions are not supported. - This command is equivalent to the MySQL BEGIN TRANSACTION command. - - You must explicitly commit or roll back the transaction using the or - method. - - If you do not specify an isolation level, the default isolation level is used. To specify an isolation - level with the method, use the overload that takes the iso parameter. - Also note that any attempt to begin a transaction while a transaction is in progress will throw an exception on MySQL 4.1 and higher. - On MySQL 4.0, an exception will not be thrown because servers 4.0 and earlier did not report their transacation status. - - - - The following example creates a and a - . It also demonstrates how to use the BeginTransaction, a - , and methods. - - Public Sub RunTransaction(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - - Dim myCommand As MySqlCommand = myConnection.CreateCommand() - Dim myTrans As MySqlTransaction - - ' Start a local transaction - myTrans = myConnection.BeginTransaction() - ' Must assign both transaction object and connection - ' to Command object for a pending local transaction - myCommand.Connection = myConnection - myCommand.Transaction = myTrans - - Try - myCommand.CommandText = "Insert into Test (id, desc) VALUES (100, 'Description')" - myCommand.ExecuteNonQuery() - myCommand.CommandText = "Insert into Test (id, desc) VALUES (101, 'Description')" - myCommand.ExecuteNonQuery() - myTrans.Commit() - Console.WriteLine("Both records are written to database.") - Catch e As Exception - Try - myTrans.Rollback() - Catch ex As MySqlException - If Not myTrans.Connection Is Nothing Then - Console.WriteLine("An exception of type " + ex.GetType().ToString() + _ - " was encountered while attempting to roll back the transaction.") - End If - End Try - - Console.WriteLine("An exception of type " + e.GetType().ToString() + _ - "was encountered while inserting the data.") - Console.WriteLine("Neither record was written to database.") - Finally - myConnection.Close() - End Try - End Sub - - - public void RunTransaction(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - - MySqlCommand myCommand = myConnection.CreateCommand(); - MySqlTransaction myTrans; - - // Start a local transaction - myTrans = myConnection.BeginTransaction(); - // Must assign both transaction object and connection - // to Command object for a pending local transaction - myCommand.Connection = myConnection; - myCommand.Transaction = myTrans; - - try - { - myCommand.CommandText = "insert into Test (id, desc) VALUES (100, 'Description')"; - myCommand.ExecuteNonQuery(); - myCommand.CommandText = "insert into Test (id, desc) VALUES (101, 'Description')"; - myCommand.ExecuteNonQuery(); - myTrans.Commit(); - Console.WriteLine("Both records are written to database."); - } - catch(Exception e) - { - try - { - myTrans.Rollback(); - } - catch (SqlException ex) - { - if (myTrans.Connection != null) - { - Console.WriteLine("An exception of type " + ex.GetType() + - " was encountered while attempting to roll back the transaction."); - } - } - - Console.WriteLine("An exception of type " + e.GetType() + - " was encountered while inserting the data."); - Console.WriteLine("Neither record was written to database."); - } - finally - { - myConnection.Close(); - } - } - - - - - Changes the current database for an open MySqlConnection.The name of the database to use. - - The value supplied in the database parameter must be a valid database - name. The database parameter cannot contain a null value, an empty - string, or a string with only blank characters. - - - - When you are using connection pooling against MySQL, and you close - the connection, it is returned to the connection pool. The next time the - connection is retrieved from the pool, the reset connection request - executes before the user performs any operations. - - The database name is not valid.The connection is not open.Cannot change the database. - The following example creates a and displays - some of its read-only properties. - - - Public Sub CreateMySqlConnection() - Dim myConnString As String = _ - "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass" - Dim myConnection As New MySqlConnection( myConnString ) - myConnection.Open() - MessageBox.Show( "Server Version: " + myConnection.ServerVersion _ - + ControlChars.NewLine + "Database: " + myConnection.Database ) - myConnection.ChangeDatabase( "test2" ) - MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion _ - + ControlChars.NewLine + "Database: " + myConnection.Database ) - myConnection.Close() - End Sub - - - - public void CreateMySqlConnection() - { - string myConnString = - "Persist Security Info=False;database=test;server=localhost;user id=joeuser;pwd=pass"; - MySqlConnection myConnection = new MySqlConnection( myConnString ); - myConnection.Open(); - MessageBox.Show( "Server Version: " + myConnection.ServerVersion - + "\nDatabase: " + myConnection.Database ); - myConnection.ChangeDatabase( "test2" ); - MessageBox.Show( "ServerVersion: " + myConnection.ServerVersion - + "\nDatabase: " + myConnection.Database ); - myConnection.Close(); - } - - - - - - Pings the server. - - true if the ping was successful; otherwise, false. - - - Opens a database connection with the property settings specified by the ConnectionString.Cannot open a connection without specifying a data source or server.A connection-level error occurred while opening the connection. - - The draws an open connection from the connection pool if one is available. - Otherwise, it establishes a new connection to an instance of MySQL. - - - The following example creates a , opens it, - displays some of its properties, then closes the connection. - - - Public Sub CreateMySqlConnection(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ - + ControlChars.Cr + "State: " + myConnection.State.ToString()) - myConnection.Close() - End Sub - - - public void CreateMySqlConnection(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + - "\nState: " + myConnection.State.ToString()); - myConnection.Close(); - } - - - - - - Initializes the if more than one host is found. - - A string containing an unparsed list of hosts. - true if the connection data is a URI; otherwise false. - The number of hosts found, -1 if an error was raised during parsing. - - - - Creates a object based on the provided parameters. - - The host string which can be a simple host name or a host name and port. - The priority of the host. - The port number of the host. - - - - - Creates and returns a object associated with the . - - A object. - - - - Closes the connection to the database. This is the preferred method of closing any open connection. - - The Close method rolls back any pending transactions. It then releases - the connection to the connection pool, or closes the connection if connection - pooling is disabled. - - - An application can call Close more than one time. No exception is - generated. - - - The following example creates a , opens it, - displays some of its properties, then closes the connection. - - - Public Sub CreateMySqlConnection(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion _ - + ControlChars.Cr + "State: " + myConnection.State.ToString()) - myConnection.Close() - End Sub - - - public void CreateMySqlConnection(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - MessageBox.Show("ServerVersion: " + myConnection.ServerVersion + - "\nState: " + myConnection.State.ToString()); - myConnection.Close(); - } - - - - - - Cancels the query after the specified time interval. - - The length of time (in seconds) to wait for the cancelation of the command execution. - - - - Sets query timeout. If timeout has been set prior and not - yet cleared ClearCommandTimeout(), it has no effect. - - timeout in seconds - true if - - - - Clears query timeout, allowing next SetCommandTimeout() to succeed. - - - - - Gets a schema collection based on the provided restriction values. - - The name of the collection. - The values to restrict. - A schema collection object. - - - Empties the connection pool associated with the specified connection. - The associated with the pool to be cleared. - - - ClearPool clears the connection pool that is associated with the connection. - If additional connections associated with connection are in use at the time of the call, - they are marked appropriately and are discarded (instead of being returned to the pool) - when Close is called on them. - - - - - Clears all connection pools. - - ClearAllPools essentially performs a on all current connection - pools. - - - - - - Initiates the asynchronous execution of a transaction. - - An object representing the new transaction. - - - - Asynchronous version of BeginTransaction. - - The cancellation token. - An object representing the new transaction. - - - - Asynchronous version of BeginTransaction. - - The isolation level under which the transaction should run. - An object representing the new transaction. - - - - Asynchronous version of BeginTransaction. - - The isolation level under which the transaction should run. - The cancellation token. - An object representing the new transaction. - - - - Asynchronous version of the ChangeDataBase method. - - The name of the database to use. - - - - - Asynchronous version of the ChangeDataBase method. - - The name of the database to use. - The cancellation token. - - - - - Asynchronous version of the Close method. - - - - - Asynchronous version of the Close method. - - The cancellation token. - - - - Asynchronous version of the ClearPool method. - - The connection associated with the pool to be cleared. - - - - Asynchronous version of the ClearPool method. - - The connection associated with the pool to be cleared. - The cancellation token. - - - - Asynchronous version of the ClearAllPools method. - - - - - Asynchronous version of the ClearAllPools method. - - The cancellation token. - - - - Asynchronous version of the GetSchemaCollection method. - - The name of the collection. - The values to restrict. - A collection of schema objects. - - - - Asynchronous version of the GetSchemaCollection method. - - The name of the collection. - The values to restrict. - The cancellation token. - A collection of schema objects. - - - - Returns schema information for the data source of this . - - A that contains schema information. - - - - Returns schema information for the data source of this - using the specified string for the schema name. - - Specifies the name of the schema to return. - A that contains schema information. - - - - Returns schema information for the data source of this - using the specified string for the schema name and the specified string array - for the restriction values. - - Specifies the name of the schema to return. - Specifies a set of restriction values for the requested schema. - A that contains schema information. - - - - Enlists in the specified transaction. - - - A reference to an existing in which to enlist. - - - - - Creates a new MySqlConnection object with the exact same ConnectionString value - - A cloned MySqlConnection object - - - - Represents the method that will handle the event of a - . - - - - - Provides data for the InfoMessage event. This class cannot be inherited. - - - - - Gets or sets an array of objects set with the errors found. - - - - - IDisposable wrapper around SetCommandTimeout and ClearCommandTimeout functionality. - - - - - Summary description for Crypt. - - - - - Simple XOR scramble - - Source array - Index inside source array - Destination array - Index inside destination array - Password used to xor the bits - Number of bytes to scramble - - - - Returns a byte array containing the proper encryption of the - given password/seed according to the new 4.1.1 authentication scheme. - - - - - - - - Encrypts a password using the MySql encryption scheme - - The password to encrypt - The encryption seed the server gave us - Indicates if we should use the old or new encryption scheme - - - - - Hashes a password using the algorithm from Monty's code. - The first element in the return is the result of the "old" hash. - The second element is the rest of the "new" hash. - - Password to be hashed - Two element array containing the hashed values - - - - Provides a means of reading a forward-only stream of rows from a MySQL database. This class cannot be inherited. - - - To create a MySQLDataReader, you must call the - method of the object, rather than directly using a constructor. - - - While the MySqlDataReader is in use, the associated - is busy serving the MySqlDataReader, and no other operations can be performed - on the MySqlConnection other than closing it. This is the case until the - method of the MySqlDataReader is called. - - - and - are the only properties that you can call after the MySqlDataReader is - closed. Though the RecordsAffected property may be accessed at any time - while the MySqlDataReader exists, always call Close before returning - the value of RecordsAffected to ensure an accurate return value. - - - For optimal performance, MySqlDataReader avoids creating - unnecessary objects or making unnecessary copies of data. As a result, multiple calls - to methods such as return a reference to the - same object. Use caution if you are modifying the underlying value of the objects - returned by methods such as GetValue. - - - The following example creates a , - a , and a MySqlDataReader. The example reads through - the data, writing it out to the console. Finally, the example closes the MySqlDataReader, then the - MySqlConnection. - - Public Sub ReadMyData(myConnString As String) - Dim mySelectQuery As String = "SELECT OrderID, CustomerID FROM Orders" - Dim myConnection As New MySqlConnection(myConnString) - Dim myCommand As New MySqlCommand(mySelectQuery, myConnection) - myConnection.Open() - Dim myReader As MySqlDataReader - myReader = myCommand.ExecuteReader() - ' Always call Read before accessing data. - While myReader.Read() - Console.WriteLine((myReader.GetInt32(0) & ", " & myReader.GetString(1))) - End While - ' always call Close when done reading. - myReader.Close() - ' Close the connection when done with it. - myConnection.Close() - End Sub 'ReadMyData - - - public void ReadMyData(string myConnString) { - string mySelectQuery = "SELECT OrderID, CustomerID FROM Orders"; - MySqlConnection myConnection = new MySqlConnection(myConnString); - MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection); - myConnection.Open(); - MySqlDataReader myReader; - myReader = myCommand.ExecuteReader(); - // Always call Read before accessing data. - while (myReader.Read()) { - Console.WriteLine(myReader.GetInt32(0) + ", " + myReader.GetString(1)); - } - // always call Close when done reading. - myReader.Close(); - // Close the connection when done with it. - myConnection.Close(); - } - - - - - - Gets the number of columns in the current row. - - - - - Gets a value indicating whether the MySqlDataReader contains one or more rows. - - - - - Gets a value indicating whether the data reader is closed. - - - - - Gets the number of rows changed, inserted, or deleted by execution of the SQL statement. - - - - - Overloaded. Gets the value of a column in its native format. - In C#, this property is the indexer for the MySqlDataReader class. - - - - - Gets the value of a column in its native format. - [C#] In C#, this property is the indexer for the MySqlDataReader class. - - - - - Gets a value indicating the depth of nesting for the current row. This method is not - supported currently and always returns 0. - - - - - Closes the MySqlDataReader object. - - - - - Gets the value of the specified column as a Boolean. - - - - - - - Gets the value of the specified column as a Boolean. - - - - - - - Gets the value of the specified column as a byte. - - - - - - - Gets the value of the specified column as a byte. - - - - - - - Gets the value of the specified column as a sbyte. - - - - - - - Gets the value of the specified column as a sbyte. - - - - - - - Reads a stream of bytes from the specified column offset into the buffer an array starting at the given buffer offset. - - The zero-based column ordinal. - The index within the field from which to begin the read operation. - The buffer into which to read the stream of bytes. - The index for buffer to begin the read operation. - The maximum length to copy into the buffer. - The actual number of bytes read. - - - - - Gets the value of the specified column as a single character. - - - - - - - Gets the value of the specified column as a single character. - - - - - - - Reads a stream of characters from the specified column offset into the buffer as an array starting at the given buffer offset. - - - - - - - - - - - Gets the name of the source data type. - - - - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a DateTime object. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a DateTime object. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a DateTime object. - - - Call IsDBNull to check for null values before calling this method. - - - - MySql allows date columns to contain the value '0000-00-00' and datetime - columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain - or represent these values. To read a datetime value from a column that might - contain zero values, use . - - - The behavior of reading a zero datetime column using this method is defined by the - ZeroDateTimeBehavior connection string option. For more information on this option, - please refer to . - - - The column name.The value of the specified column. - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a DateTime object. - - - Call IsDBNull to check for null values before calling this method. - - - - MySql allows date columns to contain the value '0000-00-00' and datetime - columns to contain the value '0000-00-00 00:00:00'. The DateTime structure cannot contain - or represent these values. To read a datetime value from a column that might - contain zero values, use . - - - The behavior of reading a zero datetime column using this method is defined by the - ZeroDateTimeBehavior connection string option. For more information on this option, - please refer to . - - - The zero-based column ordinal.The value of the specified column. - - - - Gets the value of the specified column as a . - - The name of the colum. - The value of the specified column as a . - - - - Gets the value of the specified column as a . - - The index of the colum. - The value of the specified column as a . - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a Decimal object. - - - Call IsDBNull to check for null values before calling this method. - - The column nameThe value of the specified column. - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a Decimal object. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinalThe value of the specified column. - - - Gets the value of the specified column as a double-precision floating point number. - - No conversions are performed; therefore, the data retrieved must already be a Double object. - - - Call IsDBNull to check for null values before calling this method. - - The column nameThe value of the specified column. - - - Gets the value of the specified column as a double-precision floating point number. - - No conversions are performed; therefore, the data retrieved must already be a Double object. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal.The value of the specified column. - - - - Gets the Type that is the data type of the object. - - - - - - - Gets the value of the specified column as a single-precision floating point number. - - - No conversions are performed; therefore, the data retrieved must already be a Float object. - - - Call IsDBNull to check for null values before calling this method. - - The column nameThe value of the specified column. - - - - Gets the value of the specified column as a single-precision floating point number. - - - No conversions are performed; therefore, the data retrieved must already be a Float object. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal.The value of the specified column. - - - - Gets the value of the specified column as a globally-unique identifier(GUID). - - The name of the column. - - - - - - - Gets the value of the specified column as a 16-bit signed integer. - - No conversions are performed; threfore, the data retrieved must already be a 16 bit integer value. - - - Call IsDBNull to check for null values before calling this method. - - The column nameThe value of the specified column. - - - Gets the value of the specified column as a 16-bit signed integer. - - No conversions are performed; therefore, the data retrieved must already be a 16 bit integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal.The value of the specified column. - - - Gets the value of the specified column as a 32-bit signed integer. - - No conversions are performed; therefore, the data retrieved must already be a 32 bit integer value. - - - Call IsDBNull to check for null values before calling this method. - - The column name.The value of the specified column. - - - Gets the value of the specified column as a 32-bit signed integer. - - No conversions are performed; therefore, the data retrieved must already be a 32 bit integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal.The value of the specified column. - - - Gets the value of the specified column as a 64-bit signed integer. - - No conversions are performed; therefore, the data retrieved must already be a 64 bit integer value. - - - Call IsDBNull to check for null values before calling this method. - - The column name.The value of the specified column. - - - Gets the value of the specified column as a 64-bit signed integer. - - No conversions are performed; therefore, the data retrieved must already be a 64 bit integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal.The value of the specified column. - - - - Gets the name of the specified column. - - - - - - - Gets the column ordinal, given the name of the column. - - - - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a String object. - - - Call IsDBNull to check for null values before calling this method. - - The column name.The value of the specified column. - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a String object. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal.The value of the specified column. - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a Time value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - - Gets the value of the specified column as a object. - - - No conversions are performed; therefore, the data retrieved must already be a Time value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - - Gets the value of the specified column in its native format. - - - - - - - Gets all attribute columns in the collection for the current row. - - - - - - Gets the value of the specified column as a 16-bit unsigned integer. - - No conversions are performed; therefore, the data retrieved must already be a 16 bit unsigned integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - Gets the value of the specified column as a 16-bit unsigned integer. - - No conversions are performed; therefore, the data retrieved must already be a 16 bit unsigned integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - Gets the value of the specified column as a 32-bit unsigned integer. - - No conversions are performed; therefore, the data retrieved must already be a 32 bit unsigned integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - Gets the value of the specified column as a 32-bit unsigned integer. - - No conversions are performed; therefore, the data retrieved must already be a 32 bit unsigned integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - Gets the value of the specified column as a 64-bit unsigned integer. - - No conversions are performed; therefore, the data retrieved must already be a 64 bit unsigned integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - Gets the value of the specified column as a 64-bit unsigned integer. - - No conversions are performed; therefore, the data retrieved must already be a 64 bit unsigned integer value. - - - Call IsDBNull to check for null values before calling this method. - - The zero-based column ordinal or column name.The value of the specified column. - - - - Gets a value indicating whether the column contains non-existent or missing values. - - - - - - - Advances the data reader to the next result, when reading the results of batch SQL statements. - - - - - - Advances the MySqlDataReader to the next record. - - - - - - Gets the value of the specified column as a . - - The index of the colum. - The value of the specified column as a . - - - - Gets the value of the specified column as a . - - The name of the colum. - The value of the specified column as a . - - - - Returns an that iterates through the . - - - - - Returns a DataTable that describes the column metadata of the MySqlDataReader. - - - - - - Summary description for BaseDriver. - - - - - For pooled connections, time when the driver was - put into idle queue - - - - - Loads the properties from the connected server into a hashtable - - - - - - - Loads all the current character set names and ids for this server - into the charSets hashtable - - - - - The exception that is thrown when MySQL returns an error. This class cannot be inherited. - - - - This class is created whenever the MySql Data Provider encounters an error generated from the server. - - - Any open connections are not automatically closed when an exception is thrown. If - the client application determines that the exception is fatal, it should close any open - objects or objects. - - - The following example generates a MySqlException due to a missing server, - and then displays the exception. - - - Public Sub ShowException() - Dim mySelectQuery As String = "SELECT column1 FROM table1" - Dim myConnection As New MySqlConnection ("Data Source=localhost;Database=Sample;") - Dim myCommand As New MySqlCommand(mySelectQuery, myConnection) - - Try - myCommand.Connection.Open() - Catch e As MySqlException - MessageBox.Show( e.Message ) - End Try - End Sub - - - public void ShowException() - { - string mySelectQuery = "SELECT column1 FROM table1"; - MySqlConnection myConnection = - new MySqlConnection("Data Source=localhost;Database=Sample;"); - MySqlCommand myCommand = new MySqlCommand(mySelectQuery,myConnection); - - try - { - myCommand.Connection.Open(); - } - catch (MySqlException e) - { - MessageBox.Show( e.Message ); - } - } - - - - - - Gets a number that identifies the type of error. - - - - - True if this exception was fatal and cause the closing of the connection, false otherwise. - - - - - Gets the SQL state. - - - - - Gets an integer that representes the MySQL error code. - - - - - Summary description for Field. - - - - - We are adding a custom installer class to our assembly so our installer - can make proper changes to the machine.config file. - - - - - We override Install so we can add our assembly to the proper - machine.config files. - - - - - - We override Uninstall so we can remove out assembly from the - machine.config files. - - - - - - Automatically generates single-table commands used to reconcile changes made to a DataSet with the associated MySQL database. This class cannot be inherited. - - - The does not automatically generate the SQL statements required to - reconcile changes made to a DataSet with the associated instance of MySQL. - However, you can create a MySqlCommandBuilder object to automatically generate SQL statements for - single-table updates if you set the SelectCommand property - of the MySqlDataAdapter. Then, any additional SQL statements that you do not set are generated by the - MySqlCommandBuilder. - - - - The MySqlCommandBuilder registers itself as a listener for RowUpdating - events whenever you set the property. You can only associate one - MySqlDataAdapter or MySqlCommandBuilder object with each other at one time. - - - - To generate INSERT, UPDATE, or DELETE statements, the MySqlCommandBuilder uses the - SelectCommand property to retrieve a required set of metadata automatically. If you change - the SelectCommand after the metadata has is retrieved (for example, after the first update), you - should call the method to update the metadata. - - - - The SelectCommand must also return at least one primary key or unique - column. If none are present, an InvalidOperation exception is generated, - and the commands are not generated. - - - - The MySqlCommandBuilder also uses the Connection, - CommandTimeout, and Transaction - properties referenced by the SelectCommand. The user should call - RefreshSchema if any of these properties are modified, or if the - SelectCommand itself is replaced. Otherwise the InsertCommand, - UpdateCommand, and - DeleteCommand properties retain - their previous values. - - - - If you call Dispose, the MySqlCommandBuilder is disassociated - from the MySqlDataAdapter, and the generated commands are no longer used. - - - - Caution must be used when using MySqlCOmmandBuilder on MySql 4.0 systems. With MySql 4.0, - database/schema information is not provided to the connector for a query. This means that - a query that pulls columns from two identically named tables in two or more different databases - will not cause an exception to be thrown but will not work correctly. Even more dangerous - is the situation where your select statement references database X but is executed in - database Y and both databases have tables with similar layouts. This situation can cause - unwanted changes or deletes. - This note does not apply to MySQL versions 4.1 and later. - - - - The following example uses the , along - and , to - select rows from a data source. The example is passed an initialized - , a connection string, a - query string that is a SQL SELECT statement, and a string that is the - name of the database table. The example then creates a MySqlCommandBuilder. - - - Public Shared Function SelectRows(myConnection As String, mySelectQuery As String, myTableName As String) As DataSet - Dim myConn As New MySqlConnection(myConnection) - Dim myDataAdapter As New MySqlDataAdapter() - myDataAdapter.SelectCommand = New MySqlCommand(mySelectQuery, myConn) - Dim cb As SqlCommandBuilder = New MySqlCommandBuilder(myDataAdapter) - - myConn.Open() - - Dim ds As DataSet = New DataSet - myDataAdapter.Fill(ds, myTableName) - - ' Code to modify data in DataSet here - - ' Without the MySqlCommandBuilder this line would fail. - myDataAdapter.Update(ds, myTableName) - - myConn.Close() - End Function 'SelectRows - - - public static DataSet SelectRows(string myConnection, string mySelectQuery, string myTableName) - { - MySqlConnection myConn = new MySqlConnection(myConnection); - MySqlDataAdapter myDataAdapter = new MySqlDataAdapter(); - myDataAdapter.SelectCommand = new MySqlCommand(mySelectQuery, myConn); - MySqlCommandBuilder cb = new MySqlCommandBuilder(myDataAdapter); - - myConn.Open(); - - DataSet ds = new DataSet(); - myDataAdapter.Fill(ds, myTableName); - - //code to modify data in DataSet here - - //Without the MySqlCommandBuilder this line would fail - myDataAdapter.Update(ds, myTableName); - - myConn.Close(); - - return ds; - } - - - - - - - Initializes a new instance of the class. - - - - - Initializes a new instance of the class - with the associated object. - - The to use. - - - The registers itself as a listener for - events that are generated by the - specified in this property. - - - When you create a new instance MySqlCommandBuilder, any existing - MySqlCommandBuilder associated with this MySqlDataAdapter - is released. - - - - - - Gets or sets a object for which SQL statements are automatically generated. - - A object. - - - The registers itself as a listener for - events that are generated by the - specified in this property. - - - When you create a new instance MySqlCommandBuilder, any existing - MySqlCommandBuilder associated with this MySqlDataAdapter - is released. - - - - - - Retrieves parameter information from the stored procedure specified - in the MySqlCommand and populates the Parameters collection of the - specified MySqlCommand object. - This method is not currently supported since stored procedures are - not available in MySql. - - The MySqlCommand referencing the stored - procedure from which the parameter information is to be derived. - The derived parameters are added to the Parameters collection of the - MySqlCommand. - The command text is not - a valid stored procedure name. - - - - Gets the delete command. - - - - - - Gets the update command. - - - - - - Gets the insert command. - - - - - - - - - - - - - Represents a set of data commands and a database connection that are used to fill a dataset and update a MySQL database. This class cannot be inherited. - - - The MySQLDataAdapter, serves as a bridge between a - and MySQL for retrieving and saving data. The MySQLDataAdapter provides this - bridge by mapping , which changes the data in the - DataSet to match the data in the data source, and , - which changes the data in the data source to match the data in the DataSet, - using the appropriate SQL statements against the data source. - - - When the MySQLDataAdapter fills a DataSet, it will create the necessary - tables and columns for the returned data if they do not already exist. However, primary - key information will not be included in the implicitly created schema unless the - property is set to . - You may also have the MySQLDataAdapter create the schema of the DataSet, - including primary key information, before filling it with data using . - - - MySQLDataAdapter is used in conjunction with - and to increase performance when connecting to a MySQL database. - - - The MySQLDataAdapter also includes the , - , , - , and - properties to facilitate the loading and updating of data. - - - When an instance of MySQLDataAdapter is created, the read/write properties - are set to initial values. For a list of these values, see the MySQLDataAdapter - constructor. - - - Please be aware that the class allows only - Int16, Int32, and Int64 to have the AutoIncrement property set. - If you plan to use autoincremement columns with MySQL, you should consider - using signed integer columns. - - - The following example creates a and a . - The MySqlConnection is opened and set as the for the - MySqlCommand. The example then calls , and closes - the connection. To accomplish this, the ExecuteNonQuery is - passed a connection string and a query string that is a SQL INSERT - statement. - - Public Function SelectRows(dataSet As DataSet, connection As String, query As String) As DataSet - Dim conn As New MySqlConnection(connection) - Dim adapter As New MySqlDataAdapter() - adapter.SelectCommand = new MySqlCommand(query, conn) - adapter.Fill(dataset) - Return dataset - End Function - - - public DataSet SelectRows(DataSet dataset,string connection,string query) - { - MySqlConnection conn = new MySqlConnection(connection); - MySqlDataAdapter adapter = new MySqlDataAdapter(); - adapter.SelectCommand = new MySqlCommand(query, conn); - adapter.Fill(dataset); - return dataset; - } - - - - - - Occurs during Update before a command is executed against the data source. The attempt to update is made, so the event fires. - - - - - Occurs during Update after a command is executed against the data source. The attempt to update is made, so the event fires. - - - - - Initializes a new instance of the MySqlDataAdapter class. - - - When an instance of is created, - the following read/write properties are set to the following initial - values. - - - - Properties - Initial Value - - - - - - - MissingMappingAction.Passthrough - - - - - - - - MissingSchemaAction.Add - - - - - You can change the value of any of these properties through a separate call - to the property. - - - The following example creates a and sets some of - its properties. - - Public Sub CreateSqlDataAdapter() - Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _ - "database=test") - Dim da As MySqlDataAdapter = New MySqlDataAdapter - da.MissingSchemaAction = MissingSchemaAction.AddWithKey - - da.SelectCommand = New MySqlCommand("SELECT id, name FROM mytable", conn) - da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ - "VALUES (@id, @name)", conn) - da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _ - "WHERE id=@oldId", conn) - da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn) - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - End Sub - - - public static void CreateSqlDataAdapter() - { - MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test"); - MySqlDataAdapter da = new MySqlDataAdapter(); - da.MissingSchemaAction = MissingSchemaAction.AddWithKey; - - da.SelectCommand = new MySqlCommand("SELECT id, name FROM mytable", conn); - da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + - "VALUES (@id, @name)", conn); - da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " + - "WHERE id=@oldId", conn); - da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn); - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - } - - - - - - Initializes a new instance of the class with - the specified as the - property. - - that is a SQL SELECT statement or stored procedure and is set - as the property of the . - - - When an instance of is created, - the following read/write properties are set to the following initial - values. - - - - Properties - Initial Value - - - - - - - MissingMappingAction.Passthrough - - - - - - - - MissingSchemaAction.Add - - - - - You can change the value of any of these properties through a separate call - to the property. - - - When SelectCommand (or any of the other command properties) is assigned - to a previously created , the MySqlCommand is not cloned. - The SelectCommand maintains a reference to the previously created MySqlCommand - object. - - - The following example creates a and sets some of - its properties. - - Public Sub CreateSqlDataAdapter() - Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _ - "database=test") - Dim cmd as new MySqlCommand("SELECT id, name FROM mytable", conn) - Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd) - da.MissingSchemaAction = MissingSchemaAction.AddWithKey - - da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ - "VALUES (@id, @name)", conn) - da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _ - "WHERE id=@oldId", conn) - da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn) - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - End Sub - - - public static void CreateSqlDataAdapter() - { - MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test"); - MySqlCommand cmd = new MySqlCommand("SELECT id, name FROM mytable", conn); - MySqlDataAdapter da = new MySqlDataAdapter(cmd); - da.MissingSchemaAction = MissingSchemaAction.AddWithKey; - - da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + - "VALUES (@id, @name)", conn); - da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " + - "WHERE id=@oldId", conn); - da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn); - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - } - - - - - - Initializes a new instance of the class with - a and a object. - - A String that is a SQL SELECT statement or stored procedure to be used by - the property of the . - - A that represents the connection. - - - This implementation of the opens and closes a - if it is not already open. This can be useful in a an application that must call the - method for two or more MySqlDataAdapter objects. - If the MySqlConnection is already open, you must explicitly call - or to close it. - - - When an instance of is created, - the following read/write properties are set to the following initial - values. - - - - Properties - Initial Value - - - - - - - MissingMappingAction.Passthrough - - - - - - - - MissingSchemaAction.Add - - - - - You can change the value of any of these properties through a separate call - to the property. - - - The following example creates a and sets some of - its properties. - - Public Sub CreateSqlDataAdapter() - Dim conn As MySqlConnection = New MySqlConnection("Data Source=localhost;" & _ - "database=test") - Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", conn) - da.MissingSchemaAction = MissingSchemaAction.AddWithKey - - da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ - "VALUES (@id, @name)", conn) - da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _ - "WHERE id=@oldId", conn) - da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn) - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - End Sub - - - public static void CreateSqlDataAdapter() - { - MySqlConnection conn = new MySqlConnection("Data Source=localhost;database=test"); - MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", conn); - da.MissingSchemaAction = MissingSchemaAction.AddWithKey; - - da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + - "VALUES (@id, @name)", conn); - da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " + - "WHERE id=@oldId", conn); - da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn); - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - } - - - - - - Initializes a new instance of the class with - a and a connection string. - - A that is a SQL SELECT statement or stored procedure to - be used by the property of the . - The connection string - - When an instance of is created, - the following read/write properties are set to the following initial - values. - - - - Properties - Initial Value - - - - - - - MissingMappingAction.Passthrough - - - - - - - - MissingSchemaAction.Add - - - - - You can change the value of any of these properties through a separate call - to the property. - - - The following example creates a and sets some of - its properties. - - Public Sub CreateSqlDataAdapter() - Dim da As MySqlDataAdapter = New MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test") - Dim conn As MySqlConnection = da.SelectCommand.Connection - da.MissingSchemaAction = MissingSchemaAction.AddWithKey - - da.InsertCommand = New MySqlCommand("INSERT INTO mytable (id, name) " & _ - "VALUES (@id, @name)", conn) - da.UpdateCommand = New MySqlCommand("UPDATE mytable SET id=@id, name=@name " & _ - "WHERE id=@oldId", conn) - da.DeleteCommand = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn) - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name") - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original - End Sub - - - public static void CreateSqlDataAdapter() - { - MySqlDataAdapter da = new MySqlDataAdapter("SELECT id, name FROM mytable", "Data Source=localhost;database=test"); - MySqlConnection conn = da.SelectCommand.Connection; - da.MissingSchemaAction = MissingSchemaAction.AddWithKey; - - da.InsertCommand = new MySqlCommand("INSERT INTO mytable (id, name) " + - "VALUES (@id, @name)", conn); - da.UpdateCommand = new MySqlCommand("UPDATE mytable SET id=@id, name=@name " + - "WHERE id=@oldId", conn); - da.DeleteCommand = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn); - - da.InsertCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.InsertCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - - da.UpdateCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - da.UpdateCommand.Parameters.Add("@name", MySqlDbType.VarChar, 40, "name"); - da.UpdateCommand.Parameters.Add("@oldId", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - - da.DeleteCommand.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id").SourceVersion = DataRowVersion.Original; - } - - - - - - Gets or sets a SQL statement or stored procedure used to delete records from the data set. - - A used during to delete records in the - database that correspond to deleted rows in the . - - - During , if this property is not set and primary key information - is present in the , the DeleteCommand can be generated - automatically if you set the property and use the - . Then, any additional commands that you do not set are - generated by the MySqlCommandBuilder. This generation logic requires key column - information to be present in the DataSet. - - - When DeleteCommand is assigned to a previously created , - the MySqlCommand is not cloned. The DeleteCommand maintains a reference - to the previously created MySqlCommand object. - - - The following example creates a and sets the - and DeleteCommand properties. It assumes you have already - created a object. - - Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter - - Dim da As MySqlDataAdapter = New MySqlDataAdapter() - Dim cmd As MySqlCommand - Dim parm As MySqlParameter - - ' Create the SelectCommand. - cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn) - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15) - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15) - - da.SelectCommand = cmd - - ' Create the DeleteCommand. - cmd = New MySqlCommand("DELETE FROM mytable WHERE id=@id", conn) - - parm = cmd.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id") - parm.SourceVersion = DataRowVersion.Original - - da.DeleteCommand = cmd - - Return da - End Function - - - public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) - { - MySqlDataAdapter da = new MySqlDataAdapter(); - MySqlCommand cmd; - MySqlParameter parm; - - // Create the SelectCommand. - cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn); - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15); - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15); - - da.SelectCommand = cmd; - - // Create the DeleteCommand. - cmd = new MySqlCommand("DELETE FROM mytable WHERE id=@id", conn); - - parm = cmd.Parameters.Add("@id", MySqlDbType.VarChar, 5, "id"); - parm.SourceVersion = DataRowVersion.Original; - - da.DeleteCommand = cmd; - - return da; - } - - - - - - Gets or sets a SQL statement or stored procedure used to insert records into the data set. - - A used during to insert records into the - database that correspond to new rows in the . - - - During , if this property is not set and primary key information - is present in the , the InsertCommand can be generated - automatically if you set the property and use the - . Then, any additional commands that you do not set are - generated by the MySqlCommandBuilder. This generation logic requires key column - information to be present in the DataSet. - - - When InsertCommand is assigned to a previously created , - the MySqlCommand is not cloned. The InsertCommand maintains a reference - to the previously created MySqlCommand object. - - - If execution of this command returns rows, these rows may be added to the DataSet - depending on how you set the property of the MySqlCommand object. - - - The following example creates a and sets the - and InsertCommand properties. It assumes you have already - created a object. - - Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter - - Dim da As MySqlDataAdapter = New MySqlDataAdapter() - Dim cmd As MySqlCommand - Dim parm As MySqlParameter - - ' Create the SelectCommand. - cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn) - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15) - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15) - - da.SelectCommand = cmd - - ' Create the InsertCommand. - cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id, @name)", conn) - - cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" ) - cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" ) - da.InsertCommand = cmd - - Return da - End Function - - - public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) - { - MySqlDataAdapter da = new MySqlDataAdapter(); - MySqlCommand cmd; - MySqlParameter parm; - - // Create the SelectCommand. - cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn); - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15); - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15); - - da.SelectCommand = cmd; - - // Create the InsertCommand. - cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id,@name)", conn); - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" ); - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" ); - - da.InsertCommand = cmd; - - return da; - } - - - - - - Gets or sets a SQL statement or stored procedure used to select records in the data source. - - A used during to select records from the - database for placement in the . - - - When SelectCommand is assigned to a previously created , - the MySqlCommand is not cloned. The SelectCommand maintains a reference to the - previously created MySqlCommand object. - - - If the SelectCommand does not return any rows, no tables are added to the - , and no exception is raised. - - - The following example creates a and sets the - and InsertCommand properties. It assumes you have already - created a object. - - Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter - - Dim da As MySqlDataAdapter = New MySqlDataAdapter() - Dim cmd As MySqlCommand - Dim parm As MySqlParameter - - ' Create the SelectCommand. - cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn) - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15) - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15) - - da.SelectCommand = cmd - - ' Create the InsertCommand. - cmd = New MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id, @name)", conn) - - cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" ) - cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" ) - da.InsertCommand = cmd - - Return da - End Function - - - public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) - { - MySqlDataAdapter da = new MySqlDataAdapter(); - MySqlCommand cmd; - MySqlParameter parm; - - // Create the SelectCommand. - cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn); - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15); - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15); - - da.SelectCommand = cmd; - - // Create the InsertCommand. - cmd = new MySqlCommand("INSERT INTO mytable (id,name) VALUES (@id,@name)", conn); - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" ); - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" ); - - da.InsertCommand = cmd; - - return da; - } - - - - - - Gets or sets a SQL statement or stored procedure used to updated records in the data source. - - A used during to update records in the - database with data from the . - - - During , if this property is not set and primary key information - is present in the , the UpdateCommand can be generated - automatically if you set the property and use the - . Then, any additional commands that you do not set are - generated by the MySqlCommandBuilder. This generation logic requires key column - information to be present in the DataSet. - - - When UpdateCommand is assigned to a previously created , - the MySqlCommand is not cloned. The UpdateCommand maintains a reference - to the previously created MySqlCommand object. - - - If execution of this command returns rows, these rows may be merged with the DataSet - depending on how you set the property of the MySqlCommand object. - - - The following example creates a and sets the - and UpdateCommand properties. It assumes you have already - created a object. - - Public Shared Function CreateCustomerAdapter(conn As MySqlConnection) As MySqlDataAdapter - - Dim da As MySqlDataAdapter = New MySqlDataAdapter() - Dim cmd As MySqlCommand - Dim parm As MySqlParameter - - ' Create the SelectCommand. - cmd = New MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn) - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15) - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15) - - da.SelectCommand = cmd - - ' Create the UpdateCommand. - cmd = New MySqlCommand("UPDATE mytable SET id=@id, name=@name WHERE id=@oldId", conn) - - cmd.Parameters.Add( "@id", MySqlDbType.VarChar, 15, "id" ) - cmd.Parameters.Add( "@name", MySqlDbType.VarChar, 15, "name" ) - - parm = cmd.Parameters.Add("@oldId", MySqlDbType.VarChar, 15, "id") - parm.SourceVersion = DataRowVersion.Original - - da.UpdateCommand = cmd - - Return da - End Function - - - public static MySqlDataAdapter CreateCustomerAdapter(MySqlConnection conn) - { - MySqlDataAdapter da = new MySqlDataAdapter(); - MySqlCommand cmd; - MySqlParameter parm; - - // Create the SelectCommand. - cmd = new MySqlCommand("SELECT * FROM mytable WHERE id=@id AND name=@name", conn); - - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15); - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15); - - da.SelectCommand = cmd; - - // Create the UpdateCommand. - cmd = new MySqlCommand("UPDATE mytable SET id=@id, name=@name WHERE id=@oldId", conn); - cmd.Parameters.Add("@id", MySqlDbType.VarChar, 15, "id" ); - cmd.Parameters.Add("@name", MySqlDbType.VarChar, 15, "name" ); - - parm = cmd.Parameters.Add( "@oldId", MySqlDbType.VarChar, 15, "id" ); - parm.SourceVersion = DataRowVersion.Original; - - da.UpdateCommand = cmd; - - return da; - } - - - - - - Open connection if it was closed. - Necessary to workaround "connection must be open and valid" error - with batched updates. - - Row state - list of opened connections - If connection is opened by this function, the list is updated - - true if connection was opened - - - - Overridden. See . - - - - - - - - - - Overridden. See . - - - - - - - - - - Overridden. Raises the RowUpdating event. - - A MySqlRowUpdatingEventArgs that contains the event data. - - - - Overridden. Raises the RowUpdated event. - - A MySqlRowUpdatedEventArgs that contains the event data. - - - - Asynchronous version of the Fill method. - - The to fill records with. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill records with. - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The name of the to use for table mapping. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The name of the to use for table mapping. - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The name of the source table to use for table mapping. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The name of the source table to use for table mapping. - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - An instance of . - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - An instance of . - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The SQL SELECT statement used to retrieve rows from the data source. - One of the values. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The SQL SELECT statement used to retrieve rows from the data source. - One of the values. - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The start record. - The max number of affected records. - The s to fill with records. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The start record. - The max number of affected records. - The cancellation token. - The s to fill with records. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The start record. - The max number of affected records. - The name of the source table to use for table mapping. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The start record. - The max number of affected records. - The name of the source table to use for table mapping. - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The name of the source table to use for table mapping. - An instance of . - The start record. - The max number of affected records. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The name of the source table to use for table mapping. - An instance of . - The start record. - The max number of affected records. - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The s to fill with records. - The start record. - The max number of affected records. - The SQL SELECT statement used to retrieve rows from the data source. - One of the values. - The number of rows successfully added to or refreshed in the s. - - - - Asynchronous version of the Fill method. - - The s to fill with records. - The start record. - The max number of affected records. - The SQL SELECT statement used to retrieve rows from the data source. - One of the values. - The cancellation token. - The number of rows successfully added to or refreshed in the s. - - - - Asynchronous version of the Fill method. - - The to fill with records. - The start record. - The max number of affected records. - The name of the source table to use for table mapping. - The SQL SELECT statement used to retrieve rows from the data source. - One of the values. - The number of rows successfully added to or refreshed in the . - - - - Asynchronous version of the Fill method. - - The to fill with records. - The start record. - The max number of affected records. - The name of the source table to use for table mapping. - The SQL SELECT statement used to retrieve rows from the data source. - One of the values. - The cancellation token. - The number of rows successfully added to or refreshed in the . - - - - Async version of FillSchema - - DataSet to use - Schema Type - DataTable[] - - - - Async version of FillSchema - - DataSet to use - Schema Type - Source Table - DataTable[] - - - - Async version of FillSchema - - DataSet to use - Schema Type - Source Table - DataReader to use - DataTable[] - - - - Async version of FillSchema - - DataSet to use - Schema Type - DBCommand to use - Source Table - Command Behavior - DataTable[] - - - - Async version of FillSchema - - DataTable to use - Schema Type - DataTable - - - - Async version of FillSchema - - DataTable to use - Schema Type - DataReader to use - DataTable - - - - Async version of FillSchema - - DataTable to use - Schema Type - DBCommand to use - Command Behavior - DataTable - - - - Async version of Update - - DataRow[] to use - int - - - - Async version of Update - - DataSet to use - int - - - - Async version of Update - - DataTable to use - int - - - - Async version of Update - - DataRow[] to use - Data Table Mapping - int - - - - Async version of Update - - DataSet to use - Source Table - - - - - Represents the method that will handle the event of a . - - - - - Represents the method that will handle the event of a . - - - - - Provides data for the RowUpdating event. This class cannot be inherited. - - - - - Initializes a new instance of the MySqlRowUpdatingEventArgs class. - - The to - . - The to execute during . - One of the values that specifies the type of query executed. - The sent through an . - - - - Gets or sets the MySqlCommand to execute when performing the Update. - - - - - Provides data for the RowUpdated event. This class cannot be inherited. - - - - - Initializes a new instance of the MySqlRowUpdatedEventArgs class. - - The sent through an . - The executed when is called. - One of the values that specifies the type of query executed. - The sent through an . - - - - Gets or sets the MySqlCommand executed when Update is called. - - - - - Enables the provider to help ensure that a user has a security level adequate for accessing data. - - - - - Adds a new connection string with set of restricted keywords to the MySqlClientPermission object - - Settings to be used for the connection - Keywords to define the restrictions - KeyRestrictionBehavior to be used - - - - Returns MySqlClientPermission as an IPermission - - - - - - Associates a security action with a custom security attribute. - - - - - Represents a section within a configuration file. - - - - - Gets the MySQL configuations associated to the current configuration. - - - - - Gets a collection of the exception interceptors available in the current configuration. - - - - - Gets a collection of the command interceptors available in the current configuration. - - - - - Gets a collection of the authentication plugins available in the current configuration. - - - - - Gets or sets the replication configurations. - - - - - Defines the configurations allowed for an authentication plugin. - - - - - Gets or sets the name of the authentication plugin. - - - - - Gets or sets the type of the authentication plugin. - - - - - Defines the configurations allowed for an interceptor. - - - - - Gets or sets the name of the interceptor. - - - - - Gets or sets the type of the interceptor. - - - - - Represents a generic configuration element. - - - - - - Gets an enumerator that iterates through the returned list. - - An enumerator that iterates through the returned list. - - - - Helper class that makes it easier to work with the provider. - - - - - Asynchronous version of ExecuteDataRow. - - The settings to be used for the connection. - The command to execute. - The parameters to use for the command. - The DataRow containing the first row of the resultset. - - - - Asynchronous version of ExecuteDataRow. - - The settings to be used for the connection. - The command to execute. - The cancellation token. - The parameters to use for the command. - The DataRow containing the first row of the resultset. - - - - Executes a single SQL command and returns the first row of the resultset. A new MySqlConnection object - is created, opened, and closed during this method. - - Settings to be used for the connection - Command to execute - Parameters to use for the command - DataRow containing the first row of the resultset - - - - Executes a single SQL command and returns the resultset in a . - A new MySqlConnection object is created, opened, and closed during this method. - - Settings to be used for the connection - Command to execute - containing the resultset - - - - Executes a single SQL command and returns the resultset in a . - A new MySqlConnection object is created, opened, and closed during this method. - - Settings to be used for the connection - Command to execute - Parameters to use for the command - containing the resultset - - - - Executes a single SQL command and returns the resultset in a . - The state of the object remains unchanged after execution - of this method. - - object to use - Command to execute - containing the resultset - - - - Executes a single SQL command and returns the resultset in a . - The state of the object remains unchanged after execution - of this method. - - object to use - Command to execute - Parameters to use for the command - containing the resultset - - - - Updates the given table with data from the given - - Settings to use for the update - Command text to use for the update - containing the new data to use in the update - Tablename in the dataset to update - - - - Async version of ExecuteDataset - - Settings to be used for the connection - Command to execute - containing the resultset - - - - Async version of ExecuteDataset - - Settings to be used for the connection - Command to execute - Parameters to use for the command - containing the resultset - - - - Async version of ExecuteDataset - - object to use - Command to execute - containing the resultset - - - - Async version of ExecuteDataset - - object to use - Command to execute - Parameters to use for the command - containing the resultset - - - - Async version of UpdateDataset - - Settings to use for the update - Command text to use for the update - containing the new data to use in the update - Tablename in the dataset to update - - - - Executes a single command against a MySQL database. The is assumed to be - open when the method is called and remains open after the method completes. - - The object to use - The SQL command to be executed. - An array of objects to use with the command. - The number of affected records. - - - - Executes a single command against a MySQL database. - - to use. - The SQL command to be executed. - An rray of objects to use with the command. - The number of affected records. - A new is created using the given. - - - - Executes a single command against a MySQL database, possibly inside an existing transaction. - - object to use for the command - object to use for the command - Command text to use - Array of objects to use with the command - True if the connection should be preserved, false if not - object ready to read the results of the command - - - - Executes a single command against a MySQL database. - - Settings to use for this command - Command text to use - object ready to read the results of the command - - - - Executes a single command against a MySQL database. - - object to use for the command - Command text to use - object ready to read the results of the command - - - - Executes a single command against a MySQL database. - - Settings to use for this command - Command text to use - Array of objects to use with the command - object ready to read the results of the command - - - - Executes a single command against a MySQL database. - - Connection to use for the command - Command text to use - Array of objects to use with the command - object ready to read the results of the command - - - - Execute a single command against a MySQL database. - - Settings to use for the update - Command text to use for the update - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Execute a single command against a MySQL database. - - Settings to use for the command - Command text to use for the command - Parameters to use for the command - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Execute a single command against a MySQL database. - - object to use - Command text to use for the command - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Execute a single command against a MySQL database. - - object to use - Command text to use for the command - Parameters to use for the command - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Escapes the string. - - The string to escape. - The string with all quotes escaped. - - - - Replaces quotes with double quotes. - - The string to modidify. - A string containing double quotes instead of single quotes. - - - - Async version of ExecuteNonQuery - - object to use - SQL command to be executed - Array of objects to use with the command. - Rows affected - - - - Asynchronous version of the ExecuteNonQuery method. - - to use. - The SQL command to be executed. - An array of objects to use with the command. - The number of rows affected. - - - - Asynchronous version of the ExecuteNonQuery method. - - to use. - The SQL command to be executed. - The cancellation token. - An array of objects to use with the command. - The number of rows affected. - - - - Async version of ExecuteReader - - object to use for the command - object to use for the command - Command text to use - Array of objects to use with the command - True if the connection should be preserved, false if not - object ready to read the results of the command - - - - Async version of ExecuteReader - - Settings to use for this command - Command text to use - object ready to read the results of the command - - - - Async version of ExecuteReader - - object to use for the command - Command text to use - object ready to read the results of the command - - - - Async version of ExecuteReader - - Settings to use for this command - Command text to use - Array of objects to use with the command - object ready to read the results of the command - - - - Async version of ExecuteReader - - Connection to use for the command - Command text to use - Array of objects to use with the command - object ready to read the results of the command - - - - Async version of ExecuteScalar - - Settings to use for the update - Command text to use for the update - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Async version of ExecuteScalar - - Settings to use for the command - Command text to use for the command - Parameters to use for the command - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Async version of ExecuteScalar - - object to use - Command text to use for the command - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Async version of ExecuteScalar - - object to use - Command text to use for the command - Parameters to use for the command - The first column of the first row in the result set, or a null reference if the result set is empty. - - - - Represents a parameter to a , This class cannot be inherited. - - - - - Gets or sets the to use when loading . - - - - - CLoses this object. - - An object that is a clone of this object. - - - - Initializes a new instance of the class with the parameter name, the , the size, and the source column name. - - The name of the parameter to map. - One of the values. - The length of the parameter. - The name of the source column. - - - - Initializes a new instance of the class with the parameter name and a value of the new MySqlParameter. - - The name of the parameter to map. - An that is the value of the . - - - - Initializes a new instance of the class with the parameter name and the data type. - - The name of the parameter to map. - One of the values. - - - - Initializes a new instance of the class with the parameter name, the , and the size. - - The name of the parameter to map. - One of the values. - The length of the parameter. - - - - Initializes a new instance of the class with the parameter name, the type of the parameter, the size of the parameter, a , the precision of the parameter, the scale of the parameter, the source column, a to use, and the value of the parameter. - - The name of the parameter to map. - One of the values. - The length of the parameter. - One of the values. - true if the value of the field can be null, otherwise false. - The total number of digits to the left and right of the decimal point to which is resolved. - The total number of decimal places to which is resolved. - The name of the source column. - One of the values. - An that is the value of the . - - - - - Gets or sets a value indicating whether the parameter is input-only, output-only, bidirectional, or a stored procedure return value parameter. - As of MySql version 4.1 and earlier, input-only is the only valid choice. - - - - - Gets or sets a value indicating whether the parameter accepts null values. - - - - - Gets or sets the of the parameter. - - - - - Gets or sets the maximum number of digits used to represent the property. - - - - - Gets or sets the number of decimal places to which is resolved. - - - - - Gets or sets the maximum size, in bytes, of the data within the column. - - - - - Gets or sets the value of the parameter. - - - - - Returns the possible values for this parameter if this parameter is of type - SET or ENUM. Returns null otherwise. - - - - - Gets or sets the name of the source column that is mapped to the and used for loading or returning the . - - - - - Sets or gets a value which indicates whether the source column is nullable. - This allows to correctly generate Update statements - for nullable columns. - - - - - Gets or sets the of the parameter. - - - - - Overridden. Gets a string containing the . - - - - - - Resets the DbType property to its original settings. - - - - - Represents a collection of parameters relevant to a as well as their respective mappings to columns in a . This class cannot be inherited. - - - The number of the parameters in the collection must be equal to the number of - parameter placeholders within the command text, or an exception will be generated. - - The following example creates multiple instances of - through the MySqlParameterCollection collection within the . - These parameters are used to select data within the data source and place the data in - the . This code assumes that a DataSet and a MySqlDataAdapter - have already been created with the appropriate schema, commands, and connection. - - Public Sub AddParameters() - ' ... - ' create myDataSet and myDataAdapter - ' ... - myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters" - myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239 - - myDataAdapter.Fill(myDataSet) - End Sub 'AddSqlParameters - - - public void AddSqlParameters() - { - // ... - // create myDataSet and myDataAdapter - // ... - - myDataAdapter.SelectCommand.Parameters.Add("@CategoryName", MySqlDbType.VarChar, 80).Value = "toasters"; - myDataAdapter.SelectCommand.Parameters.Add("@SerialNum", MySqlDbType.Long).Value = 239; - myDataAdapter.Fill(myDataSet); - - } - - - - - - Gets a value that indicates whether the - has a fixed size. - - - - - Gets a value that indicates whether the - is read-only. - - - - - Gets a value that indicates whether the - is synchronized. - - - - - Gets the number of MySqlParameter objects in the collection. - - - - - Gets the at the specified index. - - Gets the with a specified attribute. - [C#] In C#, this property is the indexer for the class. - - - - - Gets the with the specified name. - - - - - Adds a to the with the parameter name, the data type, the column length, and the source column name. - - The name of the parameter. - One of the values. - The length of the column. - The name of the source column. - The newly added object. - - - - Adds the specified object to the . - - The to add to the collection. - The newly added object. - - - - Adds a parameter and its value. - - The name of the parameter. - The value of the parameter. - A object representing the provided values. - - - - Adds a to the given the parameter name and the data type. - - The name of the parameter. - One of the values. - The newly added object. - - - - Adds a to the with the parameter name, the data type, and the column length. - - The name of the parameter. - One of the values. - The length of the column. - The newly added object. - - - - Removes all items from the collection. - - - - - Gets the location of the in the collection with a specific parameter name. - - The name of the object to retrieve. - The zero-based location of the in the collection. - - - - Gets the location of a in the collection. - - The object to locate. - The zero-based location of the in the collection. - Gets the location of a in the collection. - - - - This method will update all the items in the index hashes when - we insert a parameter somewhere in the middle - - - - - - - Adds an array of values to the end of the . - - - - - - Retrieve the parameter with the given name. - - - - - - - Adds the specified object to the . - - The to add to the collection. - The index of the new object. - - - - Gets a value indicating whether a with the specified parameter name exists in the collection. - - The name of the object to find. - true if the collection contains the parameter; otherwise, false. - - - - Gets a value indicating whether a MySqlParameter exists in the collection. - - The value of the object to find. - true if the collection contains the object; otherwise, false. - Gets a value indicating whether a exists in the collection. - - - - Copies MySqlParameter objects from the MySqlParameterCollection to the specified array. - - - - - - - Returns an enumerator that iterates through the . - - - - - - Inserts a MySqlParameter into the collection at the specified index. - - - - - - - Removes the specified MySqlParameter from the collection. - - - - - - Removes the specified from the collection using the parameter name. - - The name of the object to retrieve. - - - - Removes the specified from the collection using a specific index. - - The zero-based index of the parameter. - Removes the specified from the collection. - - - - Gets an object that can be used to synchronize access to the - . - - - - - Represents a single(not nested) TransactionScope - - - - - Defines security permissions assigned to a MySQL object. - - - - - Creates a set of permissions. - - A flag indicating if the reflection permission should be included. - A object representing a collection of permissions. - - - - BaseCommandInterceptor is the base class that should be used for all userland - command interceptors - - - - - Gets the active connection. - - - - - Executes an SQL statements that returns a scalar value such as a calculation. - - The SQL statement to execute. - A scalar value that represents the result returned by the execution of the SQL statement. - false. - This method is intended to be overriden. - - - - Executes an SQL statement that returns the number of affected rows. - - The SQL statement to execute. - The number of affected rows. - false. - This method is intended to be overriden. - - - - Executes an SQL statement that will return a resultset. - - The SQL statement to execute. - A value that describes the results of the query and its effect on the database. - A object containing the result of the statement execution. - false. - This method is intended to be overriden. - - - - Sets the active connection. - - The active connection. - - - - CommandInterceptor is the "manager" class that keeps the list of registered interceptors - for the given connection. - - - - - BaseExceptionInterceptor is the base class that should be used for all userland - exception interceptors. - - - - - Returns the received exception. - - The exception to be returned. - The exception originally received. - - - - Gets the active connection. - - - - - Initilizes this object by setting the active connection. - - The connection to become active. - - - - StandardExceptionInterceptor is the standard interceptor that simply returns the exception. - It is the default action. - - - - - Returns the received exception, which is the default action - - The exception to be returned. - The exception originally received. - - - - ExceptionInterceptor is the "manager" class that keeps the list of registered interceptors - for the given connection. - - - - - Interceptor is the base class for the "manager" classes such as ExceptionInterceptor, - CommandInterceptor, etc - - - - - Return schema information about procedures and functions - Restrictions supported are: - schema, name, type - - - - - - - Return schema information about parameters for procedures and functions - Restrictions supported are: - schema, name, type, parameter name - - - - - Initializes a new row for the procedure parameters table. - - - - - Parses out the elements of a procedure parameter data type. - - - - - Implementation of memcached binary client protocol. - - According to http://code.google.com/p/memcached/wiki/BinaryProtocolRevamped - - - - Sends an store command (add, replace, set). - - - - - - - - - - - Sends a get command. - - - - - - - - - Sends a delete command. - - - - - - - - Sends a command without args (like flush). - - - - - - - - Sends a command with amount (INCR/DECR) - - - - - - - - - Encodes in the binary protocol the a command of the kind set, add or replace. - - - - - - - If true applies to set, add or replace commands; if false applies to append and prepend commands. - - - - - An interface of the client memcached protocol. This class is abstract for - implementation of the Memcached client interface see for the - text protocol version and for the binary protocol version. - - - - - The port used by the connection. - - - - - The server DNS or IP address used by the connection. - - - - - The network stream used by the connecition. - - - - - Factory method for creating instances of that implement a connection with the requested features. - The connection object returned must be explicitely opened see method . - - The Memcached server DNS or IP address. - The port for the Memcached server - A set of flags indicating characterestics requested. - An instance of a client connection ready to be used. - - - - Opens the client connection. - - - - - Closes the client connection. - - - - - Adds a new key/value pair with the given TimeSpan expiration. - - The key for identifying the entry. - The data to associate with the key. - The interval of timespan, use TimeSpan.Zero for no expiration. - - - - Appens the data to the existing data for the associated key. - - The key for identifying the entry. - The data to append with the data associated with the key. - - - - Executes the Check-and-set Memcached operation. - - The key for identifying the entry. - The data to use in the CAS. - The interval of timespan, use TimeSpan.Zero for no expiration. - The CAS unique value to use. - - - - - Decrements the value associated with a key by the given amount. - - The key associated with the value to decrement. - The amount to decrement the value. - - - - Removes they pair key/value given the specified key. - - - - - - Removes all entries from the storage, effectively invalidating the whole cache. - - The interval after which the cache will be cleaned. Can be TimeSpan.Zero for immediately. - - - - Get the key/value pair associated with a given key. - - The key for which to returm the key/value. - The key/value associated with the key or a MemcachedException if it does not exists. - - - - Increments the value associated with a key by the given amount. - - The key associated with the value to increment. - The amount to increment the value. - - - - Prepends the data to the existing data for the associated key. - - The key for identifying the entry. - The data to append with the data associated with the key. - - - - Replaces the value associated with the given key with another value. - - The key for identifying the entry. - The data to replace the value associated with the key. - The interval of timespan, use TimeSpan.Zero for no expiration. - - - - Set the value of a given key. - - The key for identifying the entry. - The data to associate with the given key. - The interval of timespan, use TimeSpan.Zero for no expiration. - - - - A set of flags for requesting new instances of connections - - - - - Requests a connection implememting the text protocol. - - - - - Requests a connection implementing the binary protocol. - - - - - Requests a TCP connection. Currently UDP is not supported. - - - - - The base exception class for all Memcached exceptions. - - - - - Implementation of the Memcached text client protocol. - - - - - Sends a command to the memcached server. - - - - - - - This version is for commands that take a key, data, expiration and casUnique. - - - - Sends a command to the memcached server. - - - - - - This version is for commands that take a key, data and expiration - - - - Send a command to memcached server. - - - - - This version is for commands that don't need flags neither expiration fields. - - - - Sends a command to the server. - - - - This version is for commands that only require a key - - - - Sends a command to the server. - - - - - This version is for commands that only require a key and an integer value. - - - - Sends a command to the server. - - - - This version is for commands that only require a key and expiration. - - - - Abstract class that provides common functionality for connection options that apply for all protocols. - - - - - Readonly field containing a collection of protocol shared connection options. - - - - - Gets or sets a flag indicating if the object has access to procedures. - - - - - Gets or sets a dictionary representing key-value pairs for each connection option. - - - - - Gets or sets the name of the server. - - The server. - - - - Gets or sets the name of the database for the initial connection. - - - - - Gets or sets the protocol that should be used for communicating - with MySQL. - - - - - Gets or sets the port number that is used when the socket - protocol is being used. - - - - - Gets or sets a boolean value that indicates whether this connection - should resolve DNS SRV records. - - - - - Gets or sets the user ID that should be used to connect with. - - - - - Gets or sets the password that should be used to make a connection. - - - - - Gets or sets the path to the certificate file to be used. - - - - - Gets or sets the password to be used in conjunction with the certificate file. - - - - - Gets or sets the location to a personal store where a certificate is held. - - - - - Gets or sets a certificate thumbprint to ensure correct identification of a certificate contained within a personal store. - - - - - Indicates whether to use SSL connections and how to handle server certificate errors. - - - - - Sets the TLS versions to use in a SSL connection to the server. - - - Tls version=TLSv1.1,TLSv1.2; - - - - - Gets or sets the path to a local key file in PEM format to use for establishing an encrypted connection. - - - - - Gets or sets the path to a local certificate file in PEM format to use for establishing an encrypted connection. - - - - - Gets or sets the name of the SSH server. - - - - - Gets or sets the port number to use when authenticating to the SSH server. - - - - - Gets or sets the user name to authenticate to the SSH server. - - - - - Gets or sets the password to authenticate to the SSH server. - - - - - Gets or sets the SSH key file to authenticate to the SSH server. - - - - - Gets or sets the passphrase of the key file to authenticate to the SSH server. - - - - - Gets or sets the idle connection time(seconds) for TCP connections. - - - - - Gets or sets the character set that should be used for sending queries to the server. - - - - - Analyzes the connection string for potential duplicated or invalid connection options. - - Connection string. - Flag that indicates if the connection is using X Protocol. - Flag that indicates if the default port is used. - - - - Represents a set of methods for creating instances of the MySQL client implementation of the data source classes. - - - - - Gets an instance of the . - This can be used to retrieve strongly typed data objects. - - - - - Returns a strongly typed instance. - - A new strongly typed instance of DbCommand. - - - - Returns a strongly typed instance. - - A new strongly typed instance of DbConnection. - - - - Returns a strongly typed instance. - - A new strongly typed instance of DbParameter. - - - - Returns a strongly typed instance. - - A new strongly typed instance of DbConnectionStringBuilder. - - - - Returns a strongly typed instance. - - A new strongly typed instance of DbCommandBuilder. - - - - Returns a strongly typed instance. - - A new strongly typed instance of DbDataAdapter. - - - - Provide a simple caching layer - - - - - Aids in the creation of connection strings by exposing the connection options as properties. - Contains connection options specific to the Classic protocol. - - - - - Main constructor. - - - - - Constructor accepting a connection string. - - The connection string. - - - - Readonly field containing a collection of classic protocol and protocol shared connection options. - - - - - Gets or sets the name of the named pipe that should be used - for communicating with MySQL. - - - - - Gets or sets a boolean value that indicates whether this connection - should use compression. - - - - - Gets or sets a boolean value that indicates whether this connection will allow - commands to send multiple SQL statements in one execution. - - - - - Gets or sets a boolean value that indicates whether logging is enabled. - - - - - Gets or sets the base name of the shared memory objects used to - communicate with MySQL when the shared memory protocol is being used. - - - - - Gets or sets the default command timeout. - - - - - Gets or sets the connection timeout. - - - - - Gets or sets a boolean value that indicates whether this connection will allow - to load data local infile. - - - - - Gets or sets a boolean value that indicates if the password should be persisted - in the connection string. - - - - - Gets or sets a boolean value that indicates if the connection should be encrypted. - - Obsolte. Use instead. - - - - Gets or sets a boolean value that indicates if RSA public keys should be retrieved from the server. - - This option is only relevant when SSL is disabled. Setting this option to true in - 8.0 servers that have the caching_sha2_password authentication plugin as the default plugin will - cause the connection attempt to fail if the user hasn't successfully connected to the server on a - previous occasion. - - - - Gets or sets a boolean value that indicates if zero date time values are supported. - - Default value is false. - - - - Gets or sets a boolean value that indicates if zero datetime values should be - converted to DateTime.MinValue. - - Default value is false. - - - - Gets or sets a boolean value that indicates if the Usage Advisor should be enabled. - - Default value is false. - - - - Gets or sets the size of the stored procedure cache. - - Default value is 25. - - - - Gets or sets a boolean value that indicates if the performance monitor hooks should be enabled. - - Default value is false. - - - - Gets or sets a boolean value that indicates if calls to the Prepare method should be ignored. - - Default value is false. - - - - Gets or sets a boolean value that indicates if an opened connection should particiapte in the current scope. - - Default value is true. - - - - Gets or sets a boolean value that indicates if security asserts must be included. - - Must be set to true when using the class in a partial trust environment, - with the library installed in the GAC of the hosting environment. Not supported in .NET Core. - Default value is false. - - - - Gets or sets a boolean value that indicates if column binary flags set by the server are ignored. - - Default value is true. - - - - Gets or sets a boolean value that indicates if TINYINT(1) shound be treated as a BOOLEAN. - - Default value is true. - - - - Gets or sets a boolean value that indicates if the provider expects user variables in the SQL. - - Default value is false. - - - - Gets or sets a boolean value that indicates if the session should be interactive. - - Default value is false. - - - - Gets or sets a boolean value that indicates if server functions should be treated as returning a string. - - Default value is false. - - - - Gets or sets a boolean value that indicates if the server should report affected rows instead of found rows. - - Default value is false. - - - - Gets or sets a boolean value that indicates if items of data type BINARY(16) should be treated as guids. - - Default value is false. - - - - Gets or sets a boolean value that indicates if SQL Server syntax should be allowed by supporting square brackets - around symbols instead of backticks. - - Default value is false. - - - - Gets or sets a boolean value that indicates if caching of TableDirect commands is enabled. - - Default value is false. - - - - Gets or sets the seconds for how long a TableDirect result should be cached. - - Default value is 0. - - - - Gets or sets a boolean value that indicates if stored routine parameters should be checked against the server. - - Default value is true. - - - - Gets or sets a boolean value that indicates if this connection will use replication. - - Default value is false. - - - - Gets or sets the list of interceptors that can triage thrown MySqlExceptions. - - - - - Gets or sets the list of interceptors that can intercept command operations. - - - - - Gets or sets the lifetime of a pooled connection. - - Default value is 0. - - - - Gets or sets a boolean value indicating if connection pooling is enabled. - - Default value is true. - - - - Gets the minimum connection pool size. - - Default value is 0. - - - - Gets or sets the maximum connection pool setting. - - Default value is 100. - - - - Gets or sets a boolean value that indicates if the connection should be reset when retrieved - from the pool. - - Default value is false. - - - - Gets or sets a boolean value that indicates whether the server variable settings are updated by a - SHOW VARIABLES command each time a pooled connection is returned. - - Default value is false. - - - - Indicates whether the driver should treat binary BLOBs as UTF8. - - Default value is false. - - - - Gets or sets the pattern to match for the columns that should be treated as UTF8. - - - - - Gets or sets the pattern to match for the columns that should not be treated as UTF8. - - - - - Gets or sets a connection option. - - The keyword that identifies the connection option to modify. - - - - Summary description for ClientParam. - - - - - DB Operations Code - - - - - Specifies MySQL specific data type of a field, property, for use in a . - - - - - - A fixed precision and scale numeric value between -1038 - -1 and 10 38 -1. - - - - - The signed range is -128 to 127. The unsigned - range is 0 to 255. - - - - - A 16-bit signed integer. The signed range is - -32768 to 32767. The unsigned range is 0 to 65535 - - - - - Specifies a 24 (3 byte) signed or unsigned value. - - - - - A 32-bit signed integer - - - - - A 64-bit signed integer. - - - - - A small (single-precision) floating-point - number. Allowable values are -3.402823466E+38 to -1.175494351E-38, - 0, and 1.175494351E-38 to 3.402823466E+38. - - - - - A normal-size (double-precision) - floating-point number. Allowable values are -1.7976931348623157E+308 - to -2.2250738585072014E-308, 0, and 2.2250738585072014E-308 to - 1.7976931348623157E+308. - - - - - A timestamp. The range is '1970-01-01 00:00:00' to sometime in the - year 2037 - - - - - Date The supported range is '1000-01-01' to '9999-12-31'. - - - - - Time The range is '-838:59:59' to '838:59:59'. - - - - - DateTime The supported range is '1000-01-01 00:00:00' to - '9999-12-31 23:59:59'. - - - - - Datetime The supported range is '1000-01-01 00:00:00' to - '9999-12-31 23:59:59'. - - - - - A year in 2- or 4-digit format (default is 4-digit). The - allowable values are 1901 to 2155, 0000 in the 4-digit year - format, and 1970-2069 if you use the 2-digit format (70-69). - - - - - Obsolete Use Datetime or Date type - - - - - A variable-length string containing 0 to 65535 characters - - - - - Bit-field data type - - - - - JSON - - - - - New Decimal - - - - - An enumeration. A string object that can have only one value, - chosen from the list of values 'value1', 'value2', ..., NULL - or the special "" error value. An ENUM can have a maximum of - 65535 distinct values - - - - - A set. A string object that can have zero or more values, each - of which must be chosen from the list of values 'value1', 'value2', - ... A SET can have a maximum of 64 members. - - - - - A binary column with a maximum length of 255 (2^8 - 1) - characters - - - - - A binary column with a maximum length of 16777215 (2^24 - 1) bytes. - - - - - A binary column with a maximum length of 4294967295 or - 4G (2^32 - 1) bytes. - - - - - A binary column with a maximum length of 65535 (2^16 - 1) bytes. - - - - - A variable-length string containing 0 to 255 bytes. - - - - - A fixed-length string. - - - - - Geometric (GIS) data type. - - - - - Unsigned 8-bit value. - - - - - Unsigned 16-bit value. - - - - - Unsigned 24-bit value. - - - - - Unsigned 32-bit value. - - - - - Unsigned 64-bit value. - - - - - Fixed length binary string. - - - - - Variable length binary string. - - - - - A text column with a maximum length of 255 (2^8 - 1) characters. - - - - - A text column with a maximum length of 16777215 (2^24 - 1) characters. - - - - - A text column with a maximum length of 4294967295 or - 4G (2^32 - 1) characters. - - - - - A text column with a maximum length of 65535 (2^16 - 1) characters. - - - - - A guid column. - - - - - Allows the user to specify the type of connection that should - be used. - - - - - TCP/IP style connection. Works everywhere. - - - - - TCP/IP style connection. Works everywhere. - - - - - TCP/IP style connection. Works everywhere. - - - - - Named pipe connection. Works only on Windows systems. - - - - - Named pipe connection. Works only on Windows systems. - - - - - Unix domain socket connection. Works only with Unix systems. - - - - - Unix domain socket connection. Works only with Unix systems. - - - - - Shared memory connection. Currently works only with Windows systems. - - - - - Shared memory connection. Currently works only with Windows systems. - - - - - SSL options for connection. - - - - - Do not use SSL. - - - - - Use SSL, if server supports it. This option is only available for the classic protocol. - - - - - Always use SSL. Deny connection if server does not support SSL. - Do not perform server certificate validation. - This is the default SSL mode when the same isn't specified as part of the connection string. - - - - - Always use SSL. Validate server SSL certificate, but different host name mismatch. - - - - - Always use SSL and perform full certificate validation. - - - - - Specifies the connection types supported - - - - - Use TCP/IP sockets. - - - - - Use client library. - - - - - Use MySQL embedded server. - - - - - Defines the location of the certificate store. - - - - - Do not use certificate store. - - - - - Use certificate store for the current user. - - - - - User certificate store for the machine. - - - - - Specifies the authentication mechanism that should be used. - - - - - If SSL is enabled or Unix sockets are being used, sets PLAIN as the authentication mechanism; - otherwise, it tries to use MYSQL41 and then SHA256_MEMORY. - - - - - Authenticate using PLAIN. - - - - - Authenticate using MYSQL41. - - - - - Authenticate using EXTERNAL. - - - - - Authenticate using SHA256_MEMORY. - - - - - Defines waiting options that may be used with row locking options. - - - - - Waits until the blocking transaction releases the row lock. - - - - - Never waits to acquire a row lock. The query executes immediately, - failing with an error if a requested row is locked. - - - - - Never waits to acquire a row lock. The query executes immediately, - removing locked rows from the result set. - - - - - Defines the type of compression used when data is exchanged between client and server. - - - - - Uses compression if client and server are able to reach a concensus. Otherwise, compression - is not used. - - - - - Enforces the use of compression. If no concensus is reached, an error is raised. - - - - - Disables compression. - - - - - Collection of error codes that can be returned by the server - - - - - - - - - - - Error level - - - - - Error code - - - - - Error message - - - - - Provides a reference to error codes returned by MySQL. - - - - - ER_HASHCHK - - - - ER_NISAMCHK - - - - ER_NO - - - - ER_YES - - - The file couldn't be created. - ER_CANT_CREATE_FILE - - - The table couldn't be created. - ER_CANT_CREATE_TABLE - - - The database couldn't be created. - ER_CANT_CREATE_DB - - - The database couldn't be created, it already exists. - ER_DB_CREATE_EXISTS - - - The database couldn't be dropped, it doesn't exist. - ER_DB_DROP_EXISTS - - - The database couldn't be dropped, the file can't be deleted. - ER_DB_DROP_DELETE - - - The database couldn't be dropped, the directory can't be deleted. - ER_DB_DROP_RMDIR - - - The file couldn't be deleted. - ER_CANT_DELETE_FILE - - - The record couldn't be read from the system table. - ER_CANT_FIND_SYSTEM_REC - - - The status couldn't be retrieved. - ER_CANT_GET_STAT - - - The working directory couldn't be retrieved. - ER_CANT_GET_WD - - - The file couldn't be locked. - ER_CANT_LOCK - - - The file couldn't be opened. - ER_CANT_OPEN_FILE - - - The file couldn't be found. - ER_FILE_NOT_FOUND - - - The directory couldn't be read. - ER_CANT_READ_DIR - - - The working directory couldn't be entered. - ER_CANT_SET_WD - - - The record changed since it was last read. - ER_CHECKREAD - - - The disk is full. - ER_DISK_FULL - - - - There is already a key with the given values. - - - - An error occurred when closing the file. - ER_ERROR_ON_CLOSE - - - An error occurred when reading from the file. - ER_ERROR_ON_READ - - - An error occurred when renaming then file. - ER_ERROR_ON_RENAME - - - An error occurred when writing to the file. - ER_ERROR_ON_WRITE - - - The file is in use. - ER_FILE_USED - - - Sorting has been aborted. - ER_FILSORT_ABORT - - - The view doesn't exist. - ER_FORM_NOT_FOUND - - - Got the specified error from the table storage engine. - ER_GET_ERRNO - - - The table storage engine doesn't support the specified option. - ER_ILLEGAL_HA - - - - The specified key was not found. - - - - The file contains incorrect information. - ER_NOT_FORM_FILE - - - The key file is incorrect for the table, it should be repaired. - ER_NOT_KEYFILE - - - The key file is old for the table, it should be repaired. - ER_OLD_KEYFILE - - - The table is read-only - ER_OPEN_AS_READONLY - - - The server is out of memory, it should be restarted. - ER_OUTOFMEMORY - - - The server is out of sort-memory, the sort buffer size should be increased. - ER_OUT_OF_SORTMEMORY - - - An unexpected EOF was found when reading from the file. - ER_UNEXPECTED_EOF - - - Too many connections are open. - ER_CON_COUNT_ERROR - - - The server is out of resources, check if MySql or some other process is using all available memory. - ER_OUT_OF_RESOURCES - - - - Given when the connection is unable to successfully connect to host. - - - - The handshake was invalid. - ER_HANDSHAKE_ERROR - - - Access was denied for the specified user using the specified database. - ER_DBACCESS_DENIED_ERROR - - - - Normally returned when an incorrect password is given - - - - No database has been selected. - ER_NO_DB_ERROR - - - The command is unknown. - ER_UNKNOWN_COM_ERROR - - - The specified column cannot be NULL. - ER_BAD_NULL_ERROR - - - The specified database is not known. - - - The specified table already exists. - ER_TABLE_EXISTS_ERROR - - - The specified table is unknown. - ER_BAD_TABLE_ERROR - - - The specified column is ambiguous. - ER_NON_UNIQ_ERROR - - - The server is currently being shutdown. - ER_SERVER_SHUTDOWN - - - The specified columns is unknown. - ER_BAD_FIELD_ERROR - - - The specified column isn't in GROUP BY. - ER_WRONG_FIELD_WITH_GROUP - - - The specified columns cannot be grouped on. - ER_WRONG_GROUP_FIELD - - - There are sum functions and columns in the same statement. - ER_WRONG_SUM_SELECT - - - The column count doesn't match the value count. - ER_WRONG_VALUE_COUNT - - - The identifier name is too long. - ER_TOO_LONG_IDENT - - - The column name is duplicated. - ER_DUP_FIELDNAME - - - - Duplicate Key Name - - - - - Duplicate Key Entry - - - - The column specifier is incorrect. - ER_WRONG_FIELD_SPEC - - - An error occurred when parsing the statement. - ER_PARSE_ERROR - - - The statement is empty. - ER_EMPTY_QUERY - - - The table alias isn't unique. - ER_NONUNIQ_TABLE - - - The default value is invalid for the specified field. - ER_INVALID_DEFAULT - - - The table has multiple primary keys defined. - ER_MULTIPLE_PRI_KEY - - - Too many keys were defined for the table. - ER_TOO_MANY_KEYS - - - Too many parts to the keys were defined for the table. - ER_TOO_MANY_KEY_PARTS - - - The specified key is too long - ER_TOO_LONG_KEY - - - The specified key column doesn't exist in the table. - ER_KEY_COLUMN_DOES_NOT_EXITS - - - The BLOB column was used as a key, this can't be done. - ER_BLOB_USED_AS_KEY - - - The column length is too big for the specified column type. - ER_TOO_BIG_FIELDLENGTH - - - There can only be one auto-column, and it must be defined as a PK. - ER_WRONG_AUTO_KEY - - - The server is ready to accept connections. - ER_READY - - - - ER_NORMAL_SHUTDOWN - - - The server received the specified signal and is aborting. - ER_GOT_SIGNAL - - - The server shutdown is complete. - ER_SHUTDOWN_COMPLETE - - - The server is forcing close of the specified thread. - ER_FORCING_CLOSE - - - An error occurred when creating the IP socket. - ER_IPSOCK_ERROR - - - The table has no index like the one used in CREATE INDEX. - ER_NO_SUCH_INDEX - - - The field separator argument is not what is expected, check the manual. - ER_WRONG_FIELD_TERMINATORS - - - The BLOB columns must terminated, fixed row lengths cannot be used. - ER_BLOBS_AND_NO_TERMINATED - - - The text file cannot be read. - ER_TEXTFILE_NOT_READABLE - - - The specified file already exists. - ER_FILE_EXISTS_ERROR - - - Information returned by the LOAD statement. - ER_LOAD_INFO - - - Information returned by an UPDATE statement. - ER_ALTER_INFO - - - The prefix key is incorrect. - ER_WRONG_SUB_KEY - - - All columns cannot be removed from a table, use DROP TABLE instead. - ER_CANT_REMOVE_ALL_FIELDS - - - Cannot DROP, check that the column or key exists. - ER_CANT_DROP_FIELD_OR_KEY - - - Information returned by an INSERT statement. - ER_INSERT_INFO - - - The target table cannot be specified for update in FROM clause. - ER_UPDATE_TABLE_USED - - - The specified thread ID is unknown. - ER_NO_SUCH_THREAD - - - The thread cannot be killed, the current user is not the owner. - ER_KILL_DENIED_ERROR - - - No tables used in the statement. - ER_NO_TABLES_USED - - - Too many string have been used for the specified column and SET. - ER_TOO_BIG_SET - - - A unique filename couldn't be generated. - ER_NO_UNIQUE_LOGFILE - - - The specified table was locked with a READ lock, and can't be updated. - ER_TABLE_NOT_LOCKED_FOR_WRITE - - - The specified table was not locked with LOCK TABLES. - ER_TABLE_NOT_LOCKED - - - BLOB and Text columns cannot have a default value. - ER_BLOB_CANT_HAVE_DEFAULT - - - The specified database name is incorrect. - ER_WRONG_DB_NAME - - - The specified table name is incorrect. - ER_WRONG_TABLE_NAME - - - The SELECT command would examine more than MAX_JOIN_SIZE rows, check the WHERE clause and use SET SQL_BIG_SELECTS=1 or SET SQL_MAX_JOIN_SIZE=# if the SELECT is ok. - ER_TOO_BIG_SELECT - - - An unknown error occurred. - ER_UNKNOWN_ERROR - - - The specified procedure is unknown. - ER_UNKNOWN_PROCEDURE - - - The number of parameters provided for the specified procedure is incorrect. - ER_WRONG_PARAMCOUNT_TO_PROCEDURE - - - The parameters provided for the specified procedure are incorrect. - ER_WRONG_PARAMETERS_TO_PROCEDURE - - - The specified table is unknown. - ER_UNKNOWN_TABLE - - - The specified column has been specified twice. - ER_FIELD_SPECIFIED_TWICE - - - The group function has been incorrectly used. - ER_INVALID_GROUP_FUNC_USE - - - The specified table uses an extension that doesn't exist in this MySQL version. - ER_UNSUPPORTED_EXTENSION - - - The table must have at least one column. - ER_TABLE_MUST_HAVE_COLUMNS - - - The specified table is full. - ER_RECORD_FILE_FULL - - - The specified character set is unknown. - ER_UNKNOWN_CHARACTER_SET - - - Too many tables, MySQL can only use the specified number of tables in a JOIN. - ER_TOO_MANY_TABLES - - - Too many columns - ER_TOO_MANY_FIELDS - - - The row size is too large, the maximum row size for the used tables (not counting BLOBS) is specified, change some columns or BLOBS. - ER_TOO_BIG_ROWSIZE - - - A thread stack overrun occurred. Stack statistics are specified. - ER_STACK_OVERRUN - - - A cross dependency was found in the OUTER JOIN, examine the ON conditions. - ER_WRONG_OUTER_JOIN - - - The table handler doesn't support NULL in the given index, change specified column to be NOT NULL or use another handler. - ER_NULL_COLUMN_IN_INDEX - - - The specified user defined function cannot be loaded. - ER_CANT_FIND_UDF - - - The specified user defined function cannot be initialised. - ER_CANT_INITIALIZE_UDF - - - No paths are allowed for the shared library. - ER_UDF_NO_PATHS - - - The specified user defined function already exists. - ER_UDF_EXISTS - - - The specified shared library cannot be opened. - ER_CANT_OPEN_LIBRARY - - - The specified symbol cannot be found in the library. - ER_CANT_FIND_DL_ENTRY - - - The specified function is not defined. - ER_FUNCTION_NOT_DEFINED - - - The specified host is blocked because of too many connection errors, unblock with 'mysqladmin flush-hosts'. - ER_HOST_IS_BLOCKED - - - - The given host is not allowed to connect - - - - - The anonymous user is not allowed to connect - - - - - The given password is not allowed - - - - - The given password does not match - - - - Information returned by an UPDATE statement. - ER_UPDATE_INFO - - - A new thread couldn't be created. - ER_CANT_CREATE_THREAD - - - The column count doesn't match the value count. - ER_WRONG_VALUE_COUNT_ON_ROW - - - The specified table can't be re-opened. - ER_CANT_REOPEN_TABLE - - - The NULL value has been used incorrectly. - ER_INVALID_USE_OF_NULL - - - The regular expression contains an error. - ER_REGEXP_ERROR - - - GROUP columns (MIN(), MAX(), COUNT(), ...) cannot be mixes with no GROUP columns if there is not GROUP BY clause. - ER_MIX_OF_GROUP_FUNC_AND_FIELDS - - - - ER_NONEXISTING_GRANT - - - - ER_TABLEACCESS_DENIED_ERROR - - - - ER_COLUMNACCESS_DENIED_ERROR - - - - ER_ILLEGAL_GRANT_FOR_TABLE - - - - ER_GRANT_WRONG_HOST_OR_USER - - - - ER_NO_SUCH_TABLE - - - - ER_NONEXISTING_TABLE_GRANT - - - - ER_NOT_ALLOWED_COMMAND - - - - ER_SYNTAX_ERROR - - - - ER_DELAYED_CANT_CHANGE_LOCK - - - - ER_TOO_MANY_DELAYED_THREADS - - - - ER_ABORTING_CONNECTION - - - - An attempt was made to send or receive a packet larger than - max_allowed_packet_size - - - - - ER_NET_READ_ERROR_FROM_PIPE - - - - ER_NET_FCNTL_ERROR - - - - ER_NET_PACKETS_OUT_OF_ORDER - - - - ER_NET_UNCOMPRESS_ERROR - - - - ER_NET_READ_ERROR - - - - ER_NET_READ_INTERRUPTED - - - - ER_NET_ERROR_ON_WRITE - - - - ER_NET_WRITE_INTERRUPTED - - - - ER_TOO_LONG_STRING - - - - ER_TABLE_CANT_HANDLE_BLOB - - - - ER_TABLE_CANT_HANDLE_AUTO_INCREMENT - - - - ER_DELAYED_INSERT_TABLE_LOCKED - - - - ER_WRONG_COLUMN_NAME - - - - ER_WRONG_KEY_COLUMN - - - - ER_WRONG_MRG_TABLE - - - - ER_DUP_UNIQUE - - - - ER_BLOB_KEY_WITHOUT_LENGTH - - - - ER_PRIMARY_CANT_HAVE_NULL - - - - ER_TOO_MANY_ROWS - - - - ER_REQUIRES_PRIMARY_KEY - - - - ER_NO_RAID_COMPILED - - - - ER_UPDATE_WITHOUT_KEY_IN_SAFE_MODE - - - - ER_KEY_DOES_NOT_EXITS - - - - ER_CHECK_NO_SUCH_TABLE - - - - ER_CHECK_NOT_IMPLEMENTED - - - - ER_CANT_DO_THIS_DURING_AN_TRANSACTION - - - - ER_ERROR_DURING_COMMIT - - - - ER_ERROR_DURING_ROLLBACK - - - - ER_ERROR_DURING_FLUSH_LOGS - - - - ER_ERROR_DURING_CHECKPOINT - - - - ER_NEW_ABORTING_CONNECTION - - - - ER_DUMP_NOT_IMPLEMENTED - - - - ER_FLUSH_MASTER_BINLOG_CLOSED - - - - ER_INDEX_REBUILD - - - - ER_MASTER - - - - ER_MASTER_NET_READ - - - - ER_MASTER_NET_WRITE - - - - ER_FT_MATCHING_KEY_NOT_FOUND - - - - ER_LOCK_OR_ACTIVE_TRANSACTION - - - - ER_UNKNOWN_SYSTEM_VARIABLE - - - - ER_CRASHED_ON_USAGE - - - - ER_CRASHED_ON_REPAIR - - - - ER_WARNING_NOT_COMPLETE_ROLLBACK - - - - ER_TRANS_CACHE_FULL - - - - ER_SLAVE_MUST_STOP - - - - ER_SLAVE_NOT_RUNNING - - - - ER_BAD_SLAVE - - - - ER_MASTER_INFO - - - - ER_SLAVE_THREAD - - - - ER_TOO_MANY_USER_CONNECTIONS - - - - ER_SET_CONSTANTS_ONLY - - - - ER_LOCK_WAIT_TIMEOUT - - - - ER_LOCK_TABLE_FULL - - - - ER_READ_ONLY_TRANSACTION - - - - ER_DROP_DB_WITH_READ_LOCK - - - - ER_CREATE_DB_WITH_READ_LOCK - - - - ER_WRONG_ARGUMENTS - - - - ER_NO_PERMISSION_TO_CREATE_USER - - - - ER_UNION_TABLES_IN_DIFFERENT_DIR - - - - ER_LOCK_DEADLOCK - - - - ER_TABLE_CANT_HANDLE_FT - - - - ER_CANNOT_ADD_FOREIGN - - - - ER_NO_REFERENCED_ROW - - - - ER_ROW_IS_REFERENCED - - - - ER_CONNECT_TO_MASTER - - - - ER_QUERY_ON_MASTER - - - - ER_ERROR_WHEN_EXECUTING_COMMAND - - - - ER_WRONG_USAGE - - - - ER_WRONG_NUMBER_OF_COLUMNS_IN_SELECT - - - - ER_CANT_UPDATE_WITH_READLOCK - - - - ER_MIXING_NOT_ALLOWED - - - - ER_DUP_ARGUMENT - - - - ER_USER_LIMIT_REACHED - - - - ER_SPECIFIC_ACCESS_DENIED_ERROR - - - - ER_LOCAL_VARIABLE - - - - ER_GLOBAL_VARIABLE - - - - ER_NO_DEFAULT - - - - ER_WRONG_VALUE_FOR_VAR - - - - ER_WRONG_TYPE_FOR_VAR - - - - ER_VAR_CANT_BE_READ - - - - ER_CANT_USE_OPTION_HERE - - - - ER_NOT_SUPPORTED_YET - - - - ER_MASTER_FATAL_ERROR_READING_BINLOG - - - - ER_SLAVE_IGNORED_TABLE - - - - ER_INCORRECT_GLOBAL_LOCAL_VAR - - - - ER_WRONG_FK_DEF - - - - ER_KEY_REF_DO_NOT_MATCH_TABLE_REF - - - - ER_OPERAND_COLUMNS - - - - ER_SUBQUERY_NO_1_ROW - - - - ER_UNKNOWN_STMT_HANDLER - - - - ER_CORRUPT_HELP_DB - - - - ER_CYCLIC_REFERENCE - - - - ER_AUTO_CONVERT - - - - ER_ILLEGAL_REFERENCE - - - - ER_DERIVED_MUST_HAVE_ALIAS - - - - ER_SELECT_REDUCED - - - - ER_TABLENAME_NOT_ALLOWED_HERE - - - - ER_NOT_SUPPORTED_AUTH_MODE - - - - ER_SPATIAL_CANT_HAVE_NULL - - - - ER_COLLATION_CHARSET_MISMATCH - - - - ER_SLAVE_WAS_RUNNING - - - - ER_SLAVE_WAS_NOT_RUNNING - - - - ER_TOO_BIG_FOR_UNCOMPRESS - - - - ER_ZLIB_Z_MEM_ERROR - - - - ER_ZLIB_Z_BUF_ERROR - - - - ER_ZLIB_Z_DATA_ERROR - - - - ER_CUT_VALUE_GROUP_CONCAT - - - - ER_WARN_TOO_FEW_RECORDS - - - - ER_WARN_TOO_MANY_RECORDS - - - - ER_WARN_NULL_TO_NOTNULL - - - - ER_WARN_DATA_OUT_OF_RANGE - - - - WARN_DATA_TRUNCATED - - - - ER_WARN_USING_OTHER_HANDLER - - - - ER_CANT_AGGREGATE_2COLLATIONS - - - - ER_DROP_USER - - - - ER_REVOKE_GRANTS - - - - ER_CANT_AGGREGATE_3COLLATIONS - - - - ER_CANT_AGGREGATE_NCOLLATIONS - - - - ER_VARIABLE_IS_NOT_STRUCT - - - - ER_UNKNOWN_COLLATION - - - - ER_SLAVE_IGNORED_SSL_PARAMS - - - - ER_SERVER_IS_IN_SECURE_AUTH_MODE - - - - ER_WARN_FIELD_RESOLVED - - - - ER_BAD_SLAVE_UNTIL_COND - - - - ER_MISSING_SKIP_SLAVE - - - - ER_UNTIL_COND_IGNORED - - - - ER_WRONG_NAME_FOR_INDEX - - - - ER_WRONG_NAME_FOR_CATALOG - - - - ER_WARN_QC_RESIZE - - - - ER_BAD_FT_COLUMN - - - - ER_UNKNOWN_KEY_CACHE - - - - ER_WARN_HOSTNAME_WONT_WORK - - - - ER_UNKNOWN_STORAGE_ENGINE - - - - ER_WARN_DEPRECATED_SYNTAX - - - - ER_NON_UPDATABLE_TABLE - - - - ER_FEATURE_DISABLED - - - - ER_OPTION_PREVENTS_STATEMENT - - - - ER_DUPLICATED_VALUE_IN_TYPE - - - - ER_TRUNCATED_WRONG_VALUE - - - - ER_TOO_MUCH_AUTO_TIMESTAMP_COLS - - - - ER_INVALID_ON_UPDATE - - - - ER_UNSUPPORTED_PS - - - - ER_GET_ERRMSG - - - - ER_GET_TEMPORARY_ERRMSG - - - - ER_UNKNOWN_TIME_ZONE - - - - ER_WARN_INVALID_TIMESTAMP - - - - ER_INVALID_CHARACTER_STRING - - - - ER_WARN_ALLOWED_PACKET_OVERFLOWED - - - - ER_CONFLICTING_DECLARATIONS - - - - ER_SP_NO_RECURSIVE_CREATE - - - - ER_SP_ALREADY_EXISTS - - - - ER_SP_DOES_NOT_EXIST - - - - ER_SP_DROP_FAILED - - - - ER_SP_STORE_FAILED - - - - ER_SP_LILABEL_MISMATCH - - - - ER_SP_LABEL_REDEFINE - - - - ER_SP_LABEL_MISMATCH - - - - ER_SP_UNINIT_VAR - - - - ER_SP_BADSELECT - - - - ER_SP_BADRETURN - - - - ER_SP_BADSTATEMENT - - - - ER_UPDATE_LOG_DEPRECATED_IGNORED - - - - ER_UPDATE_LOG_DEPRECATED_TRANSLATED - - - - ER_QUERY_INTERRUPTED - - - - ER_SP_WRONG_NO_OF_ARGS - - - - ER_SP_COND_MISMATCH - - - - ER_SP_NORETURN - - - - ER_SP_NORETURNEND - - - - ER_SP_BAD_CURSOR_QUERY - - - - ER_SP_BAD_CURSOR_SELECT - - - - ER_SP_CURSOR_MISMATCH - - - - ER_SP_CURSOR_ALREADY_OPEN - - - - ER_SP_CURSOR_NOT_OPEN - - - - ER_SP_UNDECLARED_VAR - - - - ER_SP_WRONG_NO_OF_FETCH_ARGS - - - - ER_SP_FETCH_NO_DATA - - - - ER_SP_DUP_PARAM - - - - ER_SP_DUP_VAR - - - - ER_SP_DUP_COND - - - - ER_SP_DUP_CURS - - - - ER_SP_CANT_ALTER - - - - ER_SP_SUBSELECT_NYI - - - - ER_STMT_NOT_ALLOWED_IN_SF_OR_TRG - - - - ER_SP_VARCOND_AFTER_CURSHNDLR - - - - ER_SP_CURSOR_AFTER_HANDLER - - - - ER_SP_CASE_NOT_FOUND - - - - ER_FPARSER_TOO_BIG_FILE - - - - ER_FPARSER_BAD_HEADER - - - - ER_FPARSER_EOF_IN_COMMENT - - - - ER_FPARSER_ERROR_IN_PARAMETER - - - - ER_FPARSER_EOF_IN_UNKNOWN_PARAMETER - - - - ER_VIEW_NO_EXPLAIN - - - - ER_FRM_UNKNOWN_TYPE - - - - ER_WRONG_OBJECT - - - - ER_NONUPDATEABLE_COLUMN - - - - ER_VIEW_SELECT_DERIVED - - - - ER_VIEW_SELECT_CLAUSE - - - - ER_VIEW_SELECT_VARIABLE - - - - ER_VIEW_SELECT_TMPTABLE - - - - ER_VIEW_WRONG_LIST - - - - ER_WARN_VIEW_MERGE - - - - ER_WARN_VIEW_WITHOUT_KEY - - - - ER_VIEW_INVALID - - - - ER_SP_NO_DROP_SP - - - - ER_SP_GOTO_IN_HNDLR - - - - ER_TRG_ALREADY_EXISTS - - - - ER_TRG_DOES_NOT_EXIST - - - - ER_TRG_ON_VIEW_OR_TEMP_TABLE - - - - ER_TRG_CANT_CHANGE_ROW - - - - ER_TRG_NO_SUCH_ROW_IN_TRG - - - - ER_NO_DEFAULT_FOR_FIELD - - - - ER_DIVISION_BY_ZERO - - - - ER_TRUNCATED_WRONG_VALUE_FOR_FIELD - - - - ER_ILLEGAL_VALUE_FOR_TYPE - - - - ER_VIEW_NONUPD_CHECK - - - - ER_VIEW_CHECK_FAILED - - - - ER_PROCACCESS_DENIED_ERROR - - - - ER_RELAY_LOG_FAIL - - - - ER_PASSWD_LENGTH - - - - ER_UNKNOWN_TARGET_BINLOG - - - - ER_IO_ERR_LOG_INDEX_READ - - - - ER_BINLOG_PURGE_PROHIBITED - - - - ER_FSEEK_FAIL - - - - ER_BINLOG_PURGE_FATAL_ERR - - - - ER_LOG_IN_USE - - - - ER_LOG_PURGE_UNKNOWN_ERR - - - - ER_RELAY_LOG_INIT - - - - ER_NO_BINARY_LOGGING - - - - ER_RESERVED_SYNTAX - - - - ER_WSAS_FAILED - - - - ER_DIFF_GROUPS_PROC - - - - ER_NO_GROUP_FOR_PROC - - - - ER_ORDER_WITH_PROC - - - - ER_LOGGING_PROHIBIT_CHANGING_OF - - - - ER_NO_FILE_MAPPING - - - - ER_WRONG_MAGIC - - - - ER_PS_MANY_PARAM - - - - ER_KEY_PART_0 - - - - ER_VIEW_CHECKSUM - - - - ER_VIEW_MULTIUPDATE - - - - ER_VIEW_NO_INSERT_FIELD_LIST - - - - ER_VIEW_DELETE_MERGE_VIEW - - - - ER_CANNOT_USER - - - - ER_XAER_NOTA - - - - ER_XAER_INVAL - - - - ER_XAER_RMFAIL - - - - ER_XAER_OUTSIDE - - - - ER_XAER_RMERR - - - - ER_XA_RBROLLBACK - - - - ER_NONEXISTING_PROC_GRANT - - - - ER_PROC_AUTO_GRANT_FAIL - - - - ER_PROC_AUTO_REVOKE_FAIL - - - - ER_DATA_TOO_LONG - - - - ER_SP_BAD_SQLSTATE - - - - ER_STARTUP - - - - ER_LOAD_FROM_FIXED_SIZE_ROWS_TO_VAR - - - - ER_CANT_CREATE_USER_WITH_GRANT - - - - ER_WRONG_VALUE_FOR_TYPE - - - - ER_TABLE_DEF_CHANGED - - - - ER_SP_DUP_HANDLER - - - - ER_SP_NOT_VAR_ARG - - - - ER_SP_NO_RETSET - - - - ER_CANT_CREATE_GEOMETRY_OBJECT - - - - ER_FAILED_ROUTINE_BREAK_BINLOG - - - - ER_BINLOG_UNSAFE_ROUTINE - - - - ER_BINLOG_CREATE_ROUTINE_NEED_SUPER - - - - ER_EXEC_STMT_WITH_OPEN_CURSOR - - - - ER_STMT_HAS_NO_OPEN_CURSOR - - - - ER_COMMIT_NOT_ALLOWED_IN_SF_OR_TRG - - - - ER_NO_DEFAULT_FOR_VIEW_FIELD - - - - ER_SP_NO_RECURSION - - - - ER_TOO_BIG_SCALE - - - - ER_TOO_BIG_PRECISION - - - - ER_M_BIGGER_THAN_D - - - - ER_WRONG_LOCK_OF_SYSTEM_TABLE - - - - ER_CONNECT_TO_FOREIGN_DATA_SOURCE - - - - ER_QUERY_ON_FOREIGN_DATA_SOURCE - - - - ER_FOREIGN_DATA_SOURCE_DOESNT_EXIST - - - - ER_FOREIGN_DATA_STRING_INVALID_CANT_CREATE - - - - ER_FOREIGN_DATA_STRING_INVALID - - - - ER_CANT_CREATE_FEDERATED_TABLE - - - - ER_TRG_IN_WRONG_SCHEMA - - - - ER_STACK_OVERRUN_NEED_MORE - - - - ER_TOO_LONG_BODY - - - - ER_WARN_CANT_DROP_DEFAULT_KEYCACHE - - - - ER_TOO_BIG_DISPLAYWIDTH - - - - ER_XAER_DUPID - - - - ER_DATETIME_FUNCTION_OVERFLOW - - - - ER_CANT_UPDATE_USED_TABLE_IN_SF_OR_TRG - - - - ER_VIEW_PREVENT_UPDATE - - - - ER_PS_NO_RECURSION - - - - ER_SP_CANT_SET_AUTOCOMMIT - - - - ER_MALFORMED_DEFINER - - - - ER_VIEW_FRM_NO_USER - - - - ER_VIEW_OTHER_USER - - - - ER_NO_SUCH_USER - - - - ER_FORBID_SCHEMA_CHANGE - - - - ER_ROW_IS_REFERENCED_2 - - - - ER_NO_REFERENCED_ROW_2 - - - - ER_SP_BAD_VAR_SHADOW - - - - ER_TRG_NO_DEFINER - - - - ER_OLD_FILE_FORMAT - - - - ER_SP_RECURSION_LIMIT - - - - ER_SP_PROC_TABLE_CORRUPT - - - - ER_SP_WRONG_NAME - - - - ER_TABLE_NEEDS_UPGRADE - - - - ER_SP_NO_AGGREGATE - - - - ER_MAX_PREPARED_STMT_COUNT_REACHED - - - - ER_VIEW_RECURSIVE - - - - ER_NON_GROUPING_FIELD_USED - - - - ER_TABLE_CANT_HANDLE_SPKEYS - - - - ER_NO_TRIGGERS_ON_SYSTEM_SCHEMA - - - - ER_REMOVED_SPACES - - - - ER_AUTOINC_READ_FAILED - - - - ER_USERNAME - - - - ER_HOSTNAME - - - - ER_WRONG_STRING_LENGTH - - - - ER_NON_INSERTABLE_TABLE - - - - ER_ADMIN_WRONG_MRG_TABLE - - - - ER_TOO_HIGH_LEVEL_OF_NESTING_FOR_SELECT - - - - ER_NAME_BECOMES_EMPTY - - - - ER_AMBIGUOUS_FIELD_TERM - - - - ER_FOREIGN_SERVER_EXISTS - - - - ER_FOREIGN_SERVER_DOESNT_EXIST - - - - ER_ILLEGAL_HA_CREATE_OPTION - - - - ER_PARTITION_REQUIRES_VALUES_ERROR - - - - ER_PARTITION_WRONG_VALUES_ERROR - - - - ER_PARTITION_MAXVALUE_ERROR - - - - ER_PARTITION_SUBPARTITION_ERROR - - - - ER_PARTITION_SUBPART_MIX_ERROR - - - - ER_PARTITION_WRONG_NO_PART_ERROR - - - - ER_PARTITION_WRONG_NO_SUBPART_ERROR - - - - ER_WRONG_EXPR_IN_PARTITION_FUNC_ERROR - - - - ER_NO_CONST_EXPR_IN_RANGE_OR_LIST_ERROR - - - - ER_FIELD_NOT_FOUND_PART_ERROR - - - - ER_LIST_OF_FIELDS_ONLY_IN_HASH_ERROR - - - - ER_INCONSISTENT_PARTITION_INFO_ERROR - - - - ER_PARTITION_FUNC_NOT_ALLOWED_ERROR - - - - ER_PARTITIONS_MUST_BE_DEFINED_ERROR - - - - ER_RANGE_NOT_INCREASING_ERROR - - - - ER_INCONSISTENT_TYPE_OF_FUNCTIONS_ERROR - - - - ER_MULTIPLE_DEF_CONST_IN_LIST_PART_ERROR - - - - ER_PARTITION_ENTRY_ERROR - - - - ER_MIX_HANDLER_ERROR - - - - ER_PARTITION_NOT_DEFINED_ERROR - - - - ER_TOO_MANY_PARTITIONS_ERROR - - - - ER_SUBPARTITION_ERROR - - - - ER_CANT_CREATE_HANDLER_FILE - - - - ER_BLOB_FIELD_IN_PART_FUNC_ERROR - - - - ER_UNIQUE_KEY_NEED_ALL_FIELDS_IN_PF - - - - ER_NO_PARTS_ERROR - - - - ER_PARTITION_MGMT_ON_NONPARTITIONED - - - - ER_FOREIGN_KEY_ON_PARTITIONED - - - - ER_DROP_PARTITION_NON_EXISTENT - - - - ER_DROP_LAST_PARTITION - - - - ER_COALESCE_ONLY_ON_HASH_PARTITION - - - - ER_REORG_HASH_ONLY_ON_SAME_NO - - - - ER_REORG_NO_PARAM_ERROR - - - - ER_ONLY_ON_RANGE_LIST_PARTITION - - - - ER_ADD_PARTITION_SUBPART_ERROR - - - - ER_ADD_PARTITION_NO_NEW_PARTITION - - - - ER_COALESCE_PARTITION_NO_PARTITION - - - - ER_REORG_PARTITION_NOT_EXIST - - - - ER_SAME_NAME_PARTITION - - - - ER_NO_BINLOG_ERROR - - - - ER_CONSECUTIVE_REORG_PARTITIONS - - - - ER_REORG_OUTSIDE_RANGE - - - - ER_PARTITION_FUNCTION_FAILURE - - - - ER_PART_STATE_ERROR - - - - ER_LIMITED_PART_RANGE - - - - ER_PLUGIN_IS_NOT_LOADED - - - - ER_WRONG_VALUE - - - - ER_NO_PARTITION_FOR_GIVEN_VALUE - - - - ER_FILEGROUP_OPTION_ONLY_ONCE - - - - ER_CREATE_FILEGROUP_FAILED - - - - ER_DROP_FILEGROUP_FAILED - - - - ER_TABLESPACE_AUTO_EXTEND_ERROR - - - - ER_WRONG_SIZE_NUMBER - - - - ER_SIZE_OVERFLOW_ERROR - - - - ER_ALTER_FILEGROUP_FAILED - - - - ER_BINLOG_ROW_LOGGING_FAILED - - - - ER_BINLOG_ROW_WRONG_TABLE_DEF - - - - ER_BINLOG_ROW_RBR_TO_SBR - - - - ER_EVENT_ALREADY_EXISTS - - - - ER_EVENT_STORE_FAILED - - - - ER_EVENT_DOES_NOT_EXIST - - - - ER_EVENT_CANT_ALTER - - - - ER_EVENT_DROP_FAILED - - - - ER_EVENT_INTERVAL_NOT_POSITIVE_OR_TOO_BIG - - - - ER_EVENT_ENDS_BEFORE_STARTS - - - - ER_EVENT_EXEC_TIME_IN_THE_PAST - - - - ER_EVENT_OPEN_TABLE_FAILED - - - - ER_EVENT_NEITHER_M_EXPR_NOR_M_AT - - - - ER_COL_COUNT_DOESNT_MATCH_CORRUPTED - - - - ER_CANNOT_LOAD_FROM_TABLE - - - - ER_EVENT_CANNOT_DELETE - - - - ER_EVENT_COMPILE_ERROR - - - - ER_EVENT_SAME_NAME - - - - ER_EVENT_DATA_TOO_LONG - - - - ER_DROP_INDEX_FK - - - - ER_WARN_DEPRECATED_SYNTAX_WITH_VER - - - - ER_CANT_WRITE_LOCK_LOG_TABLE - - - - ER_CANT_LOCK_LOG_TABLE - - - - ER_FOREIGN_DUPLICATE_KEY - - - - ER_COL_COUNT_DOESNT_MATCH_PLEASE_UPDATE - - - - ER_TEMP_TABLE_PREVENTS_SWITCH_OUT_OF_RBR - - - - ER_STORED_FUNCTION_PREVENTS_SWITCH_BINLOG_FORMAT - - - - ER_NDB_CANT_SWITCH_BINLOG_FORMAT - - - - ER_PARTITION_NO_TEMPORARY - - - - ER_PARTITION_CONST_DOMAIN_ERROR - - - - ER_PARTITION_FUNCTION_IS_NOT_ALLOWED - - - - ER_DDL_LOG_ERROR - - - - ER_NULL_IN_VALUES_LESS_THAN - - - - ER_WRONG_PARTITION_NAME - - - - ER_CANT_CHANGE_TRANSACTION_ISOLATION - - - - ER_DUP_ENTRY_AUTOINCREMENT_CASE - - - - ER_EVENT_MODIFY_QUEUE_ERROR - - - - ER_EVENT_SET_VAR_ERROR - - - - ER_PARTITION_MERGE_ERROR - - - - ER_CANT_ACTIVATE_LOG - - - - ER_RBR_NOT_AVAILABLE - - - - ER_BASE64_DECODE_ERROR - - - - ER_EVENT_RECURSION_FORBIDDEN - - - - ER_EVENTS_DB_ERROR - - - - ER_ONLY_INTEGERS_ALLOWED - - - - ER_UNSUPORTED_LOG_ENGINE - - - - ER_BAD_LOG_STATEMENT - - - - ER_CANT_RENAME_LOG_TABLE - - - - ER_WRONG_PARAMCOUNT_TO_NATIVE_FCT - - - - ER_WRONG_PARAMETERS_TO_NATIVE_FCT - - - - ER_WRONG_PARAMETERS_TO_STORED_FCT - - - - ER_NATIVE_FCT_NAME_COLLISION - - - - ER_DUP_ENTRY_WITH_KEY_NAME - - - - ER_BINLOG_PURGE_EMFILE - - - - ER_EVENT_CANNOT_CREATE_IN_THE_PAST - - - - ER_EVENT_CANNOT_ALTER_IN_THE_PAST - - - - ER_SLAVE_INCIDENT - - - - ER_NO_PARTITION_FOR_GIVEN_VALUE_SILENT - - - - ER_BINLOG_UNSAFE_STATEMENT - - - - ER_SLAVE_FATAL_ERROR - - - - ER_SLAVE_RELAY_LOG_READ_FAILURE - - - - ER_SLAVE_RELAY_LOG_WRITE_FAILURE - - - - ER_SLAVE_CREATE_EVENT_FAILURE - - - - ER_SLAVE_MASTER_COM_FAILURE - - - - ER_BINLOG_LOGGING_IMPOSSIBLE - - - - ER_VIEW_NO_CREATION_CTX - - - - ER_VIEW_INVALID_CREATION_CTX - - - - ER_SR_INVALID_CREATION_CTX - - - - ER_TRG_CORRUPTED_FILE - - - - ER_TRG_NO_CREATION_CTX - - - - ER_TRG_INVALID_CREATION_CTX - - - - ER_EVENT_INVALID_CREATION_CTX - - - - ER_TRG_CANT_OPEN_TABLE - - - - ER_CANT_CREATE_SROUTINE - - - - ER_SLAVE_AMBIGOUS_EXEC_MODE - - - - ER_NO_FORMAT_DESCRIPTION_EVENT_BEFORE_BINLOG_STATEMENT - - - - ER_SLAVE_CORRUPT_EVENT - - - - ER_LOAD_DATA_INVALID_COLUMN - - - - ER_LOG_PURGE_NO_FILE - - - - ER_XA_RBTIMEOUT - - - - ER_XA_RBDEADLOCK - - - - ER_NEED_REPREPARE - - - - ER_DELAYED_NOT_SUPPORTED - - - - WARN_NO_MASTER_INFO - - - - WARN_OPTION_IGNORED - - - - WARN_PLUGIN_DELETE_BUILTIN - - - - WARN_PLUGIN_BUSY - - - - ER_VARIABLE_IS_READONLY - - - - ER_WARN_ENGINE_TRANSACTION_ROLLBACK - - - - ER_SLAVE_HEARTBEAT_FAILURE - - - - ER_SLAVE_HEARTBEAT_VALUE_OUT_OF_RANGE - - - - ER_NDB_REPLICATION_SCHEMA_ERROR - - - - ER_CONFLICT_FN_PARSE_ERROR - - - - ER_EXCEPTIONS_WRITE_ERROR - - - - ER_TOO_LONG_TABLE_COMMENT - - - - ER_TOO_LONG_FIELD_COMMENT - - - - ER_FUNC_INEXISTENT_NAME_COLLISION - - - - ER_DATABASE_NAME - - - - ER_TABLE_NAME - - - - ER_PARTITION_NAME - - - - ER_SUBPARTITION_NAME - - - - ER_TEMPORARY_NAME - - - - ER_RENAMED_NAME - - - - ER_TOO_MANY_CONCURRENT_TRXS - - - - WARN_NON_ASCII_SEPARATOR_NOT_IMPLEMENTED - - - - ER_DEBUG_SYNC_TIMEOUT - - - - ER_DEBUG_SYNC_HIT_LIMIT - - - - ER_ERROR_LAST - - - - WriteInteger - - - - - - - Summary description for MySqlPool. - - - - - It is assumed that this property will only be used from inside an active - lock. - - - - - Indicates whether this pool is being cleared. - - - - - It is assumed that this method is only called from inside an active lock. - - - - - It is assumed that this method is only called from inside an active lock. - - - - - Removes a connection from the in use pool. The only situations where this method - would be called are when a connection that is in use gets some type of fatal exception - or when the connection is being returned to the pool and it's too old to be - returned. - - - - - - Clears this pool of all idle connections and marks this pool and being cleared - so all other connections are closed when they are returned. - - - - - Remove expired drivers from the idle pool - - - - Closing driver is a potentially lengthy operation involving network - IO. Therefore we do not close expired drivers while holding - idlePool.SyncRoot lock. We just remove the old drivers from the idle - queue and return them to the caller. The caller will need to close - them (or let GC close them) - - - - - Summary description for MySqlPoolManager. - - - - - Queue of demoted hosts. - - - - - List of hosts that will be attempted to connect to. - - - - - Timer to be used when a host have been demoted. - - - - - Remove drivers that have been idle for too long. - - - - - Remove hosts that have been on the demoted list for more - than 120,000 milliseconds and add them to the available hosts list. - - - - - Provides a class capable of executing a SQL script containing - multiple SQL statements including CREATE PROCEDURE statements - that require changing the delimiter - - - - - Handles the event raised whenever a statement is executed. - - - - - Handles the event raised whenever an error is raised by the execution of a script. - - - - - Handles the event raised whenever a script execution is finished. - - - - - Initializes a new instance of the - class. - - - - - Initializes a new instance of the - class. - - The connection. - - - - Initializes a new instance of the - class. - - The query. - - - - Initializes a new instance of the - class. - - The connection. - The query. - - - - Gets or sets the connection. - - The connection. - - - - Gets or sets the query. - - The query. - - - - Gets or sets the delimiter. - - The delimiter. - - - - Executes this instance. - - The number of statements executed as part of the script. - - - - Initiates the asynchronous execution of SQL statements. - - The number of statements executed as part of the script inside. - - - - Initiates the asynchronous execution of SQL statements. - - The cancellation token. - The number of statements executed as part of the script inside. - - - - Represents the method that will handle errors when executing MySQL statements. - - - - - Represents the method that will handle errors when executing MySQL scripts. - - - - - Sets the arguments associated to MySQL scripts. - - - - - Gets the statement text. - - The statement text. - - - - Gets the line. - - The line. - - - - Gets the position. - - The position. - - - - Sets the arguments associated to MySQL script errors. - - - - - Initializes a new instance of the class. - - The exception. - - - - Gets the exception. - - The exception. - - - - Gets or sets a value indicating whether this is ignored. - - true if ignore; otherwise, false. - - - - Summary description for MySqlStream. - - - - - ReadPacket is called by NativeDriver to start reading the next - packet on the stream. - - - - - Reads the specified number of bytes from the stream and stores them at given - offset in the buffer. - Throws EndOfStreamException if not all bytes can be read. - - Stream to read from - Array to store bytes read from the stream - The offset in buffer at which to begin storing the data read from the current stream. - Number of bytes to read - - - - LoadPacket loads up and decodes the header of the incoming packet. - - - - - Traces information about the client execution. - - - - - Gets the list of trace listeners. - - - - - Gets or sets the switch to control tracing and debugging. - - - - - Gets or sets a flag indicating if query analysis is enabled. - - - - - Enables query analysis. - - The host on which to enable query analysis. - The interval of time for logging trace information. - - - - Disables query analysis. - - - - - Specifies the types of warning flags. - - - - - No index exists. - - - - - Bad index exists. - - - - - Rows have been excluded from the result. - - - - - Columns have been excluded from the result. - - - - - Type conversions took place. - - - - - Specifies the event that triggered the trace. - - - - - A connection has been opened. - - - - - A connection has been closed. - - - - - A query has been executed. - - - - - Data has been retrieved from the resultset. - - - - - Data retrieval has ended. - - - - - Query execution has ended. - - - - - The statement to be executed has been created. - - - - - The statement has been executed. - - - - - The statement is no longer required. - - - - - The query provided is of a nonquery type. - - - - - Usage advisor warnings have been requested. - - - - - Noncritical problem. - - - - - An error has been raised during data retrieval. - - - - - The query has been normalized. - - - - - Summary description for Driver. - - - - - Sets the current database for the this connection - - - - - - Return the appropriate set of connection flags for our - server capabilities and our user requested options. - - - - - Query is the method that is called to send all queries to the server - - - - - Sends the specified file to the server. - This supports the LOAD DATA LOCAL INFILE - - - - - - FetchDataRow is the method that the data reader calls to see if there is another - row to fetch. In the non-prepared mode, it will simply read the next data packet. - In the prepared mode (statementId > 0), it will - - - - - Execution timeout, in milliseconds. When the accumulated time for network IO exceeds this value - TimeoutException is thrown. This timeout needs to be reset for every new command - - - - - - Summary description for PreparedStatement. - - - - - Prepares CommandText for use with the Prepare method - - Command text stripped of all paramter names - - Takes the output of TokenizeSql and creates a single string of SQL - that only contains '?' markers for each parameter. It also creates - the parameterMap array list that includes all the paramter names in the - order they appeared in the SQL - - - - - Defines a replication configurarion element in the configuration file. - - - - - Gets a collection of objects representing the server groups. - - - - - Defines a replication server group in the configuration file. - - - - - Gets or sets the name of the replication server group configuration. - - - - - Gets or sets the group type of the replication server group configuration. - - - - - Gets or sets the number of seconds to wait for retry. - - - - - Gets a collection of objects representing the - server configurations associated to this group configuration. - - - - - Defines a replication server in configuration file. - - - - - Gets or sets the name of the replication server configuration. - - - - - Gets or sets whether the replication server is configured as master. - - - - - Gets or sets the connection string associated to this replication server. - - - - - Manager for Replication and Load Balancing features - - - - - Returns Replication Server Group List - - - - - Adds a Default Server Group to the list - - Group name - Time between reconnections for failed servers - Replication Server Group added - - - - Adds a Server Group to the list - - Group name - ServerGroup type reference - Time between reconnections for failed servers - Server Group added - - - - Gets the next server from a replication group - - Group name - True if the server to return must be a master - Replication Server defined by the Load Balancing plugin - - - - Gets a Server Group by name - - Group name - Server Group if found, otherwise throws an MySqlException - - - - Validates if the replication group name exists - - Group name to validate - true if the replication group name is found; otherwise, false - - - - Assigns a new server driver to the connection object - - Group name - True if the server connection to assign must be a master - MySqlConnection object where the new driver will be assigned - - - - Class that implements Round Robing Load Balancing technique. - - - - - Gets an available server based on Round Robin load balancing. - - Flag indicating if the server to return must be a master. - A object representing the next available server. - - - - Represents a server in a Replication environment. - - - - - Gets the server name. - - - - - Gets a value indicating whether the server is master or slave. - - - - - Gets the connection string used to connect to the server. - - - - - Gets a flag indicating if the server is available to be considered in load balancing. - - - - - Base class used to implement load balancing features. - - - - - List of servers available for replication. - - - - The group name. - The number of seconds to perform a retry. - - - - Gets the group name. - - - - - Gets the retry time between connections to failed servers. - - - - - Gets the server list in the group. - - - - - Adds a server into the group. - - The server name. - A flag indicating if the server to add is master or slave. - The connection string used by this server. - A object representing the recently added object. - - - - Removes a server from the group. - - The server name. - - - - Gets a server by name. - - The server name. - The replication server. - - - - Must be implemented. Defines the next server for a custom load balancing implementation. - - Defines if the server to return is a master or any. - The next server based on the load balancing implementation. - Null if no available server is found. - - - - - Defines the next server for a custom load balancing implementation. - - Defines if the server to return is a master or any. - Currently not being used. - The next server based on the load balancing implementation. - Null if no available server is found. - - - - - Handles a failed connection to a server. - - The failed server. - This method can be overrided to implement a custom failover handling. - - - - Handles a failed connection to a server. - - The failed server. - The exception that caused the failover. - - - - return the ordinal for the given column name - - - - - - - Retrieve the value as the given column index - - The column value to retrieve - The value as the given column - - - - Closes the current resultset, dumping any data still on the wire - - - - - Loads the column metadata for the current resultset - - - - - Represents a schema and its contents. - - - - - Gets or sets the name of the schema. - - - - - Gets the list of columns in the schema. - - - - - Gets the list of rows in the schema. - - - - - Represents a row within a schema. - - - - - Represents a column within a schema. - - - - - The name of the column. - - - - - The type of the column. - - - - - GetForeignKeysOnTable retrieves the foreign keys on the given table. - Since MySQL supports foreign keys on versions prior to 5.0, we can't use - information schema. MySQL also does not include any type of SHOW command - for foreign keys so we have to resort to use SHOW CREATE TABLE and parsing - the output. - - The table to store the key info in. - The table to get the foeign key info for. - Only get foreign keys that match this name. - Should column information be included in the table. - - - - Serializes the given parameter to the given memory stream - - - This method is called by PrepareSqlBuffers to convert the given - parameter to bytes and write those bytes to the given memory stream. - - - True if the parameter was successfully serialized, false otherwise. - - - - Summary description for StoredProcedure. - - - - - Defines the basic operations to be performed on the table cache. - - - - - The maximum age allowed for cache entries. - - - - - Adds the given command and result set to the cache. - - The command to store in the cache. - The resultset associated to the stored command. - - - - Retrieves the specified command from the cache. - - The command to retrieve. - The allowed age for the cache entry. - - - - - Removes the specified command from the cache. - - The command to remove from the cache. - - - - Clears the cache. - - - - - Removes cache entries older than the value defined by . - - - - - Stream that supports timeout of IO operations. - This class is used is used to support timeouts for SQL command, where a - typical operation involves several network reads/writes. - Timeout here is defined as the accumulated duration of all IO operations. - - - - - Construct a TimedStream - - Undelying stream - - - - Figure out whether it is necessary to reset timeout on stream. - We track the current value of timeout and try to avoid - changing it too often, because setting Read/WriteTimeout property - on network stream maybe a slow operation that involves a system call - (setsockopt). Therefore, we allow a small difference, and do not - reset timeout if current value is slightly greater than the requested - one (within 0.1 second). - - - - - Common handler for IO exceptions. - Resets timeout to infinity if timeout exception is - detected and stops the times. - - original exception - - - - Represents a SQL transaction to be made in a MySQL database. This class cannot be inherited. - - The application creates a MySqlTransaction object by calling - on the object. All subsequent operations associated with the - transaction (for example, committing or aborting the transaction), are performed on the - MySqlTransaction object. - - The following example creates a and a MySqlTransaction. - It also demonstrates how to use the , - , and methods. - - Public Sub RunTransaction(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - - Dim myCommand As MySqlCommand = myConnection.CreateCommand() - Dim myTrans As MySqlTransaction - - ' Start a local transaction - myTrans = myConnection.BeginTransaction() - ' Must assign both transaction object and connection - ' to Command object for a pending local transaction - myCommand.Connection = myConnection - myCommand.Transaction = myTrans - - Try - myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')" - myCommand.ExecuteNonQuery() - myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')" - myCommand.ExecuteNonQuery() - myTrans.Commit() - Console.WriteLine("Both records are written to database.") - Catch e As Exception - Try - myTrans.Rollback() - Catch ex As MySqlException - If Not myTrans.Connection Is Nothing Then - Console.WriteLine("An exception of type " & ex.GetType().ToString() & _ - " was encountered while attempting to roll back the transaction.") - End If - End Try - - Console.WriteLine("An exception of type " & e.GetType().ToString() & _ - "was encountered while inserting the data.") - Console.WriteLine("Neither record was written to database.") - Finally - myConnection.Close() - End Try - End Sub 'RunTransaction - - - public void RunTransaction(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - - MySqlCommand myCommand = myConnection.CreateCommand(); - MySqlTransaction myTrans; - - // Start a local transaction - myTrans = myConnection.BeginTransaction(); - // Must assign both transaction object and connection - // to Command object for a pending local transaction - myCommand.Connection = myConnection; - myCommand.Transaction = myTrans; - - try - { - myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (100, 'Description')"; - myCommand.ExecuteNonQuery(); - myCommand.CommandText = "Insert into Region (RegionID, RegionDescription) VALUES (101, 'Description')"; - myCommand.ExecuteNonQuery(); - myTrans.Commit(); - Console.WriteLine("Both records are written to database."); - } - catch(Exception e) - { - try - { - myTrans.Rollback(); - } - catch (MySqlException ex) - { - if (myTrans.Connection != null) - { - Console.WriteLine("An exception of type " + ex.GetType() + - " was encountered while attempting to roll back the transaction."); - } - } - - Console.WriteLine("An exception of type " + e.GetType() + - " was encountered while inserting the data."); - Console.WriteLine("Neither record was written to database."); - } - finally - { - myConnection.Close(); - } - } - - - - - - Gets the object associated with the transaction, or a null reference (Nothing in Visual Basic) if the transaction is no longer valid. - - The object associated with this transaction. - - A single application may have multiple database connections, each - with zero or more transactions. This property enables you to - determine the connection object associated with a particular - transaction created by . - - - - - Specifies the for this transaction. - - - The for this transaction. The default is ReadCommitted. - - - Parallel transactions are not supported. Therefore, the IsolationLevel - applies to the entire transaction. - - - - - Commits the database transaction. - - The Commit method is equivalent to the MySQL SQL statement - COMMIT. - - The following example creates a and a - . It also demonstrates how to use the - , , and Rollback - methods. - - Public Sub RunSqlTransaction(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - - Dim myCommand As MySqlCommand = myConnection.CreateCommand() - Dim myTrans As MySqlTransaction - - ' Start a local transaction - myTrans = myConnection.BeginTransaction() - - ' Must assign both transaction object and connection - ' to Command object for a pending local transaction - myCommand.Connection = myConnection - myCommand.Transaction = myTrans - - Try - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')" - myCommand.ExecuteNonQuery() - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')" - myCommand.ExecuteNonQuery() - myTrans.Commit() - Console.WriteLine("Success.") - Catch e As Exception - Try - myTrans.Rollback() - Catch ex As MySqlException - If Not myTrans.Connection Is Nothing Then - Console.WriteLine("An exception of type " & ex.GetType().ToString() & _ - " was encountered while attempting to roll back the transaction.") - End If - End Try - - Console.WriteLine("An exception of type " & e.GetType().ToString() & _ - "was encountered while inserting the data.") - Console.WriteLine("Neither record was written to database.") - Finally - myConnection.Close() - End Try - End Sub - - - public void RunSqlTransaction(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - - MySqlCommand myCommand = myConnection.CreateCommand(); - MySqlTransaction myTrans; - - // Start a local transaction - myTrans = myConnection.BeginTransaction(); - // Must assign both transaction object and connection - // to Command object for a pending local transaction - myCommand.Connection = myConnection; - myCommand.Transaction = myTrans; - - try - { - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')"; - myCommand.ExecuteNonQuery(); - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')"; - myCommand.ExecuteNonQuery(); - myTrans.Commit(); - Console.WriteLine("Both records are written to database."); - } - catch(Exception e) - { - try - { - myTrans.Rollback(); - } - catch (MySqlException ex) - { - if (myTrans.Connection != null) - { - Console.WriteLine("An exception of type " + ex.GetType() + - " was encountered while attempting to roll back the transaction."); - } - } - - Console.WriteLine("An exception of type " + e.GetType() + - " was encountered while inserting the data."); - Console.WriteLine("Neither record was written to database."); - } - finally - { - myConnection.Close(); - } - } - - - - - - Rolls back a transaction from a pending state. - - The Rollback method is equivalent to the MySQL statement ROLLBACK. - The transaction can only be rolled back from a pending state - (after BeginTransaction has been called, but before Commit is - called). - - The following example creates a and a - . It also demonstrates how to use the - , , and Rollback - methods. - - Public Sub RunSqlTransaction(myConnString As String) - Dim myConnection As New MySqlConnection(myConnString) - myConnection.Open() - - Dim myCommand As MySqlCommand = myConnection.CreateCommand() - Dim myTrans As MySqlTransaction - - ' Start a local transaction - myTrans = myConnection.BeginTransaction() - - ' Must assign both transaction object and connection - ' to Command object for a pending local transaction - myCommand.Connection = myConnection - myCommand.Transaction = myTrans - - Try - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')" - myCommand.ExecuteNonQuery() - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')" - myCommand.ExecuteNonQuery() - myTrans.Commit() - Console.WriteLine("Success.") - Catch e As Exception - Try - myTrans.Rollback() - Catch ex As MySqlException - If Not myTrans.Connection Is Nothing Then - Console.WriteLine("An exception of type " & ex.GetType().ToString() & _ - " was encountered while attempting to roll back the transaction.") - End If - End Try - - Console.WriteLine("An exception of type " & e.GetType().ToString() & _ - "was encountered while inserting the data.") - Console.WriteLine("Neither record was written to database.") - Finally - myConnection.Close() - End Try - End Sub - - - public void RunSqlTransaction(string myConnString) - { - MySqlConnection myConnection = new MySqlConnection(myConnString); - myConnection.Open(); - - MySqlCommand myCommand = myConnection.CreateCommand(); - MySqlTransaction myTrans; - - // Start a local transaction - myTrans = myConnection.BeginTransaction(); - // Must assign both transaction object and connection - // to Command object for a pending local transaction - myCommand.Connection = myConnection; - myCommand.Transaction = myTrans; - - try - { - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (100, 'Description')"; - myCommand.ExecuteNonQuery(); - myCommand.CommandText = "Insert into mytable (id, desc) VALUES (101, 'Description')"; - myCommand.ExecuteNonQuery(); - myTrans.Commit(); - Console.WriteLine("Both records are written to database."); - } - catch(Exception e) - { - try - { - myTrans.Rollback(); - } - catch (MySqlException ex) - { - if (myTrans.Connection != null) - { - Console.WriteLine("An exception of type " + ex.GetType() + - " was encountered while attempting to roll back the transaction."); - } - } - - Console.WriteLine("An exception of type " + e.GetType() + - " was encountered while inserting the data."); - Console.WriteLine("Neither record was written to database."); - } - finally - { - myConnection.Close(); - } - } - - - - - - DNS resolver that runs queries against a server. - - - - - Initializes a new instance of the class. - - - - - Gets the DNS SVR records of the service name that is provided. - - A list of s sorted as described in RFC2782. - - - - Sorts a list of DNS SRV records according to the sorting rules described in RFC2782. - - List of s to sort. - A new list of sorted s. - - - - Resets the DnsSrvResolver - - - - - Class that represents a DNS SRV record. - RFC 2782 (https://tools.ietf.org/html/rfc2782) - - - - - Gets the port. - - - - - Gets the priority. - - - - - Gets the target domain name. - - - - - Gets the weight. - - - - - Initializes a new instance of class. - - The port. - The priority. - The target. - The weight. - - - - Initializes a new instance of class. - - The DNS SRV record. - - - - Compare two objects. First, using their priority and - if both have the same, then using their weights. - - A to compare. - A to compare. - - - - - Initializes a new instance of the class from a . - - The DNS SRV record. - - - - This class is modeled after .NET Stopwatch. It provides better - performance (no system calls).It is however less precise than - .NET Stopwatch, measuring in milliseconds. It is adequate to use - when high-precision is not required (e.g for measuring IO timeouts), - but not for other tasks. - - - - - Wrapper around NetworkStream. - - MyNetworkStream is equivalent to NetworkStream, except - 1. It throws TimeoutException if read or write timeout occurs, instead - of IOException, to match behavior of other streams (named pipe and - shared memory). This property comes handy in TimedStream. - - 2. It implements workarounds for WSAEWOULDBLOCK errors, that can start - occuring after stream has times out. For a discussion about the CLR bug, - refer to http://tinyurl.com/lhgpyf. This error should never occur, as - we're not using asynchronous operations, but apparerntly it does occur - directly after timeout has expired. - The workaround is hinted in the URL above and implemented like this: - For each IO operation, if it throws WSAEWOULDBLOCK, we explicitely set - the socket to Blocking and retry the operation once again. - - - - - Set keepalive + timeout on socket. - - socket - keepalive timeout, in seconds - - - - Static class to manage SSH connections created with SSH .NET. - - - - - Gets or sets the SSH client initialized when calling the method. - - - - - Stores a list of SSH clients having different connection settings. - - - - - Removes the MySQL unsupported encryptions (SSH Ciphers), MACs and key exchange algorithms. - - The instance containing the list of supported elements. - See https://confluence.oraclecorp.com/confluence/display/GPS/Approved+Security+Technologies%3A+Standards+-+SSH+Ciphers+and+Versions for an updated list. - - - - Initializes an instance if no SSH client with similar connection options has already been initialized. - - The SSH host name. - The SSH user name. - The SSH password. - The SSH key file. - The SSH pass phrase. - The SSH port. - The local host name. - The local port number. - Flag to indicate if the connection will be created for the classic or X Protocol. - - - - - Raises warning messages if the SSH client is using a deprecated encryption, MAC or key exchanged algorithm. - - The instance containing the - encryption, MAC algorithm and key exchange algorithm currently being used. - - - - Read a single quoted identifier from the stream - - - - - - - Helper class to encapsulate shared memory functionality - Also cares of proper cleanup of file mapping object and cew - - - - - Summary description for SharedMemoryStream. - - - - - By creating a private ctor, we keep the compiler from creating a default ctor - - - - - Mark - or + signs that are unary ops as no output - - - - - - Wrapper class used for handling SSH connections. - - - - - Starts the SSH client. - - - - - Stops the SSH client. - - - - - Handles SSL connections for the Classic and X protocols. - - - - - Contains the connection options provided by the user. - - - - - A flag to establish how certificates are to be treated and validated. - - - - - Defines the supported TLS protocols. - - - - - Retrieves a collection containing the client SSL PFX certificates. - - Dependent on connection string settings. - Either file or store based certificates are used. - - - - Initiates the SSL connection. - - The base stream. - The encoding used in the SSL connection. - The connection string used to establish the connection. - A instance ready to initiate an SSL connection. - - - - Verifies the SSL certificates used for authentication. - - An object that contains state information for this validation. - The MySQL server certificate used to authenticate the remote party. - The chain of certificate authorities associated with the remote certificate. - One or more errors associated with the remote certificate. - true if no errors were found based on the selected SSL mode; false, otherwise. - - - - Gets the extension of the specified file. - - The path of the file. - Flag to indicate if the result should be converted to lower case. - The . character is ommited from the result. - - - - - Summary description for StreamCreator. - - - - - Set the keepalive timeout on the socket. - - The socket object. - The keepalive timeout, in seconds. - - - - Summary description for Version. - - - - - Provides functionality to read SSL PEM certificates and to perform multiple validations via Bouncy Castle. - - - - - Raises an exception if the specified connection option is null, empty or whitespace. - - The connection option to verify. - - - - Reads the specified file as a byte array. - - The path of the file to read. - A byte array representing the read file. - - - - Reads the SSL certificate file. - - The path to the certificate file. - A instance representing the SSL certificate file. - - - - Reads the SSL certificate key file. - - The path to the certificate key file. - A instance representing the SSL certificate key file. - - - - Verifies that the certificate has not yet expired. - - The certificate to verify. - - - - Verifies a certificate CA status. - - The certificate to validate. - A flag indicating the expected CA status. - - - - Verifies that the certificate was signed using the private key that corresponds to the specified public key - - The client side certificate containing the public key. - The server certificate. - - - - Verifies that no SSL policy errors regarding the identitfy of the host were raised. - - A instance set with the raised SSL errors. - - - - Verifies that the issuer matches the CA by comparing the CA certificate issuer and the server certificate issuer. - - The CA certificate. - The server certificate. - - - - - Gets and sets the host list. - - - - - Gets the active host. - - - - - Active host. - - - - - Sets the initial active host. - - - - - Determines the next host. - - object that represents the next available host. - - - - Implements common elements that allow to manage the hosts available for client side failover. - - - - - Gets and sets the failover group which consists of a host list. - - - - - Resets the manager. - - - - - Sets the host list to be used during failover operations. - - The host list. - The failover method. - - - - Attempts to establish a connection to a host specified from the list. - - The original connection string set by the user. - An out parameter that stores the updated connection string. - A object in case this is a pooling scenario. - An instance if the connection was succesfully established, a exception is thrown otherwise. - - - - - Creates a if more than one host is found. - - A string containing an unparsed list of hosts. - true if the connection is X Protocol; otherwise false. - true if the connection data is a URI; otherwise false. - The number of hosts found, -1 if an error was raised during parsing. - - - - Creates a object based on the provided parameters. - - The host string that can be a simple host name or a host name and port. - The priority of the host. - The port number of the host. - true if the connection data is a URI; otherwise false. - - - - - Attempts the next host in the list. Moves to the first element if the end of the list is reached. - - - - - Determines the next host on which to attempt a connection by checking the value of the Priority property in descending order. - - - - - Determines the next host on which to attempt a connection randomly. - - - - - Depicts a host which can be failed over to. - - - - - Gets and sets the name or address of the host. - - - - - Gets and sets the port number. - - - - - Gets a value between 0 and 100 which represents the priority of the host. - - - - - Flag to indicate if this host is currently being used. - - - - - Flag to indicate if this host has been attempted to connection. - - - - - Time since the host has been demoted. - - - - - Initializes a object. - - The host. - The port. - The priority. - - - - Compares two objects of type . - - FailoverServer object to compare. - True if host properties are the same. Otherwise, false. - - - - Manages the hosts available for client side failover using the Random Failover method. - The Random Failover method attempts to connect to the hosts specified in the list randomly until all the hosts have been attempted. - - - - - The initial host taken from the list. - - - - - The host for the current connection attempt. - - - - - Random object to get the next host. - - - - - Sets the initial active host. - - - - - Determines the next host. - - A object that represents the next available host. - - - - Manages the hosts available for client side failover using the Sequential Failover method. - The Sequential Failover method attempts to connect to the hosts specified in the list one after another until the initial host is reached. - - - - - The initial host taken from the list. - - - - - The index of the current host. - - - - - The host for the current connection attempt. - - - - - Sets the initial active host. - - - - - Determines the next host. - - A object that represents the next available host. - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter is null. - - - - - Looks up a localized string similar to Improper MySqlCommandBuilder state: adapter's SelectCommand is null. - - - - - Looks up a localized string similar to Invalid attempt to access a field before calling Read(). - - - - - Looks up a localized string similar to Authentication to host '{0}' for user '{1}' using method '{2}' failed with message: {3}. - - - - - Looks up a localized string similar to Authentication method '{0}' not supported by any of the available plugins.. - - - - - Looks up a localized string similar to Version string not in acceptable format. - - - - - Looks up a localized string similar to The buffer cannot be null. - - - - - Looks up a localized string similar to Buffer is not large enough. - - - - - Looks up a localized string similar to Canceling an executing query requires MySQL 5.0 or higher.. - - - - - Looks up a localized string similar to Canceling an active query is only supported on MySQL 5.0.0 and above. . - - - - - Looks up a localized string similar to Parameters can only be derived for commands using the StoredProcedure command type.. - - - - - Looks up a localized string similar to MySqlCommandBuilder does not support multi-table statements. - - - - - Looks up a localized string similar to MySqlCommandBuilder cannot operate on tables with no unique or key columns. - - - - - Looks up a localized string similar to Chaos isolation level is not supported . - - - - - Looks up a localized string similar to The CommandText property has not been properly initialized.. - - - - - Looks up a localized string similar to Compression is not supported.. - - - - - Looks up a localized string similar to The connection is already open.. - - - - - Looks up a localized string similar to Connection unexpectedly terminated.. - - - - - Looks up a localized string similar to Connection must be valid and open. - - - - - Looks up a localized string similar to The connection is not open.. - - - - - Looks up a localized string similar to The connection property has not been set or is null.. - - - - - Looks up a localized string similar to Could not find specified column in results: {0}. - - - - - Looks up a localized string similar to Count cannot be negative. - - - - - Looks up a localized string similar to SetLength is not a valid operation on CompressedStream. - - - - - Looks up a localized string similar to The given value was not in a supported format.. - - - - - Looks up a localized string similar to There is already an open DataReader associated with this Connection which must be closed first.. - - - - - Looks up a localized string similar to The default connection encoding was not found. Please report this as a bug along with your connection string and system details.. - - - - - Looks up a localized string similar to The {0} algorithm being used by the server({1}) has been deprecated and will be removed in a future version. It is recommended that you configure the server to use a non-deprecated {0} algorithm.. - - - - - Looks up a localized string similar to MySQL Connector/NET does not currently support distributed transactions.. - - - - - Looks up a localized string similar to Specifying multiple host names with DNS SRV lookup is not permitted.. - - - - - Looks up a localized string similar to Specifying a port number with DNS SRV lookup is not permitted.. - - - - - Looks up a localized string similar to Using Unix domain sockets with DNS SRV lookup is not permitted.. - - - - - Looks up a localized string similar to Unable to locate any hosts for {0}.. - - - - - Looks up a localized string similar to Connection option '{0}' is duplicated.. - - - - - Looks up a localized string similar to SSL connection option '{0}' is duplicated.. - - - - - Looks up a localized string similar to Encoding error during validation.. - - - - - Looks up a localized string similar to Error creating socket connection. - - - - - Looks up a localized string similar to Verify that user '{0}'@'{1}' has enough privileges to execute.. - - - - - Looks up a localized string similar to Fatal error encountered during command execution.. - - - - - Looks up a localized string similar to Fatal error encountered during data read.. - - - - - Looks up a localized string similar to Fatal error encountered attempting to read the resultset.. - - - - - Looks up a localized string similar to File based certificates are only supported when connecting to MySQL Server 5.1 or greater.. - - - - - Looks up a localized string similar to The specified file cannot be converted to a certificate.. - - - - - Looks up a localized string similar to The specified file cannot be converted to a key.. - - - - - Looks up a localized string similar to Failed to read file at the specified location.. - - - - - Looks up a localized string similar to No file path has been provided for the connection option {0}.. - - - - - Looks up a localized string similar to From index and length use more bytes than from contains. - - - - - Looks up a localized string similar to From index must be a valid index inside the from buffer. - - - - - Looks up a localized string similar to Call to GetHostEntry failed after {0} while querying for hostname '{1}': SocketErrorCode={2}, ErrorCode={3}, NativeErrorCode={4}.. - - - - - Looks up a localized string similar to Retrieving procedure metadata for {0} from server.. - - - - - Looks up a localized string similar to Value has an unsupported format.. - - - - - Looks up a localized string similar to An incorrect response was received from the server.. - - - - - Looks up a localized string similar to Index and length use more bytes than to has room for. - - - - - Looks up a localized string similar to Index must be a valid position in the buffer. - - - - - Looks up a localized string similar to The provided key is invalid.. - - - - - Looks up a localized string similar to You have specified an invalid column ordinal.. - - - - - Looks up a localized string similar to The requested value '{0}' is invalid for the given keyword '{1}'.. - - - - - Looks up a localized string similar to The host name or IP address is invalid.. - - - - - Looks up a localized string similar to Microsecond must be a value between 0 and 999999.. - - - - - Looks up a localized string similar to Millisecond must be a value between 0 and 999. For more precision use Microsecond.. - - - - - Looks up a localized string similar to No other SSL options are accepted when SSL Mode is set to None.. - - - - - Looks up a localized string similar to Procedure or function '{0}' cannot be found in database '{1}'.. - - - - - Looks up a localized string similar to The certificate is invalid.. - - - - - Looks up a localized string similar to Unable to validate the signature.. - - - - - Looks up a localized string similar to Unable to verify the signature.. - - - - - Looks up a localized string similar to Value '{0}' is not of the correct type.. - - - - - Looks up a localized string similar to Option "tls-version" can not be specified when SSL connections are disabled.. - - - - - Looks up a localized string similar to '{0}' not recognized as a valid TLS protocol version (should be one of TLSv1, TLSv1.1, TLSv1.2{1}).. - - - - - Looks up a localized string similar to '{0}' is an illegal value for a boolean option.. - - - - - Looks up a localized string similar to Keyword does not allow null values.. - - - - - Looks up a localized string similar to Option not supported.. - - - - - Looks up a localized string similar to ACCESSIBLE - ADD - ALL - ALTER - ANALYZE - AND - AS - ASC - ASENSITIVE - BEFORE - BEGIN - BETWEEN - BIGINT - BINARY - BLOB - BOTH - BY - CALL - CASCADE - CASE - CHANGE - CHAR - CHARACTER - CHECK - COLLATE - COLUMN - COMMIT - CONDITION - CONNECTION - CONSTRAINT - CONTINUE - CONVERT - CREATE - CROSS - CURRENT_DATE - CURRENT_TIME - CURRENT_TIMESTAMP - CURRENT_USER - CURSOR - DATABASE - DATABASES - DAY_HOUR - DAY_MICROSECOND - DAY_MINUTE - DAY_SECOND - DEC - DECIMAL - DECLARE - DEFAULT - DELAYED - DELETE - DESC - DESCRIBE - DETERMINISTIC - DISTINCT - DISTINCTROW - DIV - DO - DOUBLE - DROP - DUAL - EACH - ELSE - ELSEIF - ENCLOSED - END - ESC [rest of string was truncated]";. - - - - - Looks up a localized string similar to Server asked for stream in response to LOAD DATA LOCAL INFILE, but the functionality is disabled by the client setting 'allowlocalinfile' to 'false'.. - - - - - Looks up a localized string similar to Mixing named and unnamed parameters is not allowed.. - - - - - Looks up a localized string similar to INTERNAL ERROR: More than one output parameter row detected.. - - - - - Looks up a localized string similar to Multiple simultaneous connections or connections with different connection strings inside the same transaction are not currently supported.. - - - - - Looks up a localized string similar to NamedPipeStream does not support seeking. - - - - - Looks up a localized string similar to NamedPipeStream doesn't support SetLength. - - - - - Looks up a localized string similar to The new value must be a MySqlParameter object.. - - - - - Looks up a localized string similar to Invalid attempt to call NextResult when the reader is closed.. - - - - - Looks up a localized string similar to When calling stored procedures and 'Use Procedure Bodies' is false, all parameters must have their type explicitly set.. - - - - - Looks up a localized string similar to Nested transactions are not supported.. - - - - - Looks up a localized string similar to The host {0} does not support SSL connections.. - - - - - Looks up a localized string similar to Unix sockets are not supported on Windows.. - - - - - Looks up a localized string similar to Cannot retrieve Windows identity for current user. Connections that use IntegratedSecurity cannot be pooled. Use either 'ConnectionReset=true' or 'Pooling=false' in the connection string to fix.. - - - - - Looks up a localized string similar to The object is not open or has been disposed.. - - - - - Looks up a localized string similar to Offset cannot be negative. - - - - - Looks up a localized string similar to Offset must be a valid position in buffer. - - - - - Looks up a localized string similar to Authentication with old password no longer supported, use 4.1 style passwords.. - - - - - Looks up a localized string similar to The option '{0}' is not currently supported.. - - - - - Looks up a localized string similar to Parameter '{0}' has already been defined.. - - - - - Looks up a localized string similar to Parameter cannot have a negative value. - - - - - Looks up a localized string similar to Parameter cannot be null. - - - - - Looks up a localized string similar to Parameter '{0}' can't be null or empty.. - - - - - Looks up a localized string similar to Parameter index was not found in Parameter Collection.. - - - - - Looks up a localized string similar to Parameter is invalid.. - - - - - Looks up a localized string similar to Parameter '{0}' must be defined.. - - - - - Looks up a localized string similar to Parameter '{0}' was not found during prepare.. - - - - - Looks up a localized string similar to Parameter can't be null or empty.. - - - - - Looks up a localized string similar to Password must be valid and contain length characters. - - - - - Looks up a localized string similar to This category includes a series of counters for MySQL. - - - - - Looks up a localized string similar to .NET Data Provider for MySQL. - - - - - Looks up a localized string similar to The number of times a procedures metadata had to be queried from the server.. - - - - - Looks up a localized string similar to Hard Procedure Queries. - - - - - Looks up a localized string similar to The number of times a procedures metadata was retrieved from the client-side cache.. - - - - - Looks up a localized string similar to Soft Procedure Queries. - - - - - Looks up a localized string similar to same name are not supported.. - - - - - Looks up a localized string similar to Packets larger than max_allowed_packet are not allowed.. - - - - - Looks up a localized string similar to Reading from the stream has failed.. - - - - - Looks up a localized string similar to Invalid attempt to read a prior column using SequentialAccess. - - - - - Looks up a localized string similar to Replicated connections allow only readonly statements.. - - - - - Looks up a localized string similar to Attempt to connect to '{0}' server failed.. - - - - - Looks up a localized string similar to No available server found.. - - - - - Looks up a localized string similar to Replication group '{0}' not found.. - - - - - Looks up a localized string similar to Replicated server not found: '{0}'. - - - - - Looks up a localized string similar to Routine '{0}' cannot be found. Either check the spelling or make sure you have sufficient rights to execute the routine.. - - - - - Looks up a localized string similar to Attempt to call stored function '{0}' without specifying a return parameter. - - - - - Looks up a localized string similar to Retrieval of the RSA public key is not enabled for insecure connections.. - - - - - Looks up a localized string similar to Connector/NET no longer supports server versions prior to 5.0. - - - - - Looks up a localized string similar to Snapshot isolation level is not supported.. - - - - - Looks up a localized string similar to Socket streams do not support seeking. - - - - - Looks up a localized string similar to Retrieving procedure metadata for {0} from procedure cache.. - - - - - Looks up a localized string similar to Stored procedures are not supported on this version of MySQL. - - - - - Looks up a localized string similar to The SSH Key File and/or SSH Password must be provided.. - - - - - Looks up a localized string similar to The provided passphrase is invalid.. - - - - - Looks up a localized string similar to The certificate authority (CA) does not match.. - - - - - Looks up a localized string similar to The host name does not match the name on the certificate.. - - - - - Looks up a localized string similar to The certificate is not a certificate authority (CA).. - - - - - Looks up a localized string similar to SSL Connection error.. - - - - - Looks up a localized string similar to The stream has already been closed. - - - - - Looks up a localized string similar to The stream does not support reading. - - - - - Looks up a localized string similar to The stream does not support writing. - - - - - Looks up a localized string similar to String can't be empty.. - - - - - Looks up a localized string similar to Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding.. - - - - - Looks up a localized string similar to error connecting: Timeout expired. The timeout period elapsed prior to obtaining a connection from the pool. This may have occurred because all pooled connections were in use and max pool size was reached.. - - - - - Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} seconds was exceeded for each selected server.. - - - - - Looks up a localized string similar to TLSv1.3 is supported in .NET Framework 4.8 or .NET Core 3.0.. - - - - - Looks up a localized string similar to No supported TLS protocol version found in the 'tls-versions' list.. - - - - - Looks up a localized string similar to {0}: Connection Closed. - - - - - Looks up a localized string similar to Unable to trace. There are more than Int32.MaxValue connections in use.. - - - - - Looks up a localized string similar to {0}: Error encountered during row fetch. Number = {1}, Message={2}. - - - - - Looks up a localized string similar to {0}: Connection Opened: connection string = '{1}'. - - - - - Looks up a localized string similar to {0}: Error encountered attempting to open result: Number={1}, Message={2}. - - - - - Looks up a localized string similar to {0}: Query Closed. - - - - - Looks up a localized string similar to {0}: Query Normalized: {2}. - - - - - Looks up a localized string similar to {0}: Query Opened: {2}. - - - - - Looks up a localized string similar to {0}: Resultset Opened: field(s) = {1}, affected rows = {2}, inserted id = {3}. - - - - - Looks up a localized string similar to {0}: Resultset Closed. Total rows={1}, skipped rows={2}, size (bytes)={3}. - - - - - Looks up a localized string similar to {0}: Set Database: {1}. - - - - - Looks up a localized string similar to {0}: Statement closed: statement id = {1}. - - - - - Looks up a localized string similar to {0}: Statement executed: statement id = {1}. - - - - - Looks up a localized string similar to {0}: Statement prepared: sql='{1}', statement id={2}. - - - - - Looks up a localized string similar to {0}: Usage Advisor Warning: Query is using a bad index. - - - - - Looks up a localized string similar to {0}: Usage Advisor Warning: The field '{2}' was converted to the following types: {3}. - - - - - Looks up a localized string similar to {0}: Usage Advisor Warning: Query does not use an index. - - - - - Looks up a localized string similar to {0}: Usage Advisor Warning: The following columns were not accessed: {2}. - - - - - Looks up a localized string similar to {0}: Usage Advisor Warning: Skipped {2} rows. Consider a more focused query.. - - - - - Looks up a localized string similar to {0}: MySql Warning: Level={1}, Code={2}, Message={3}. - - - - - Looks up a localized string similar to Type '{0}' is not derived from BaseCommandInterceptor. - - - - - Looks up a localized string similar to Type '{0}' is not derived from BaseExceptionInterceptor. - - - - - Looks up a localized string similar to Unable to connect to any of the specified MySQL hosts.. - - - - - Looks up a localized string similar to Unable to create plugin for authentication method '{0}'. Please see inner exception for details.. - - - - - Looks up a localized string similar to Unable to derive stored routine parameters. The 'Parameters' information schema table is not available and access to the stored procedure body has been disabled.. - - - - - Looks up a localized string similar to Unable to enable query analysis. Be sure the MySql.Data.EMTrace assembly is properly located and registered.. - - - - - Looks up a localized string similar to An error occured attempting to enumerate the user-defined functions. Do you have SELECT privileges on the mysql.func table?. - - - - - Looks up a localized string similar to Unable to execute stored procedure '{0}'.. - - - - - Looks up a localized string similar to There was an error parsing the foreign key definition.. - - - - - Looks up a localized string similar to Error encountered reading the RSA public key.. - - - - - Looks up a localized string similar to Unable to retrieve stored procedure metadata for routine '{0}'. Either grant SELECT privilege to mysql.proc for this user or use "check parameters=false" with your connection string.. - - - - - Looks up a localized string similar to Unable to start a second async operation while one is running.. - - - - - Looks up a localized string similar to Unix sockets are not supported on Windows. - - - - - Looks up a localized string similar to Unknown authentication method '{0}' was requested.. - - - - - Looks up a localized string similar to Unknown connection protocol. - - - - - Looks up a localized string similar to Value '{0}' is not of the correct type.. - - - - - Looks up a localized string similar to The requested column value could not be treated as or conveted to a Guid.. - - - - - Looks up a localized string similar to Windows authentication connections are not supported on {0}. - - - - - Looks up a localized string similar to Writing to the stream failed.. - - - - - Looks up a localized string similar to Parameter '{0}' is not found but a parameter with the name '{1}' is found. Parameter names must include the leading parameter marker.. - - - - - A strongly-typed resource class, for looking up localized strings, etc. - - - - - Returns the cached ResourceManager instance used by this class. - - - - - Overrides the current thread's CurrentUICulture property for all - resource lookups using this strongly typed resource class. - - - - - Looks up a localized string similar to Appdata path is not defined.. - - - - - Looks up a localized string similar to Authentication failed using MYSQL41 and SHA256_MEMORY. Check the user name and password or try using a secure connection.. - - - - - Looks up a localized string similar to You can't get more sessions because Client is closed.. - - - - - Looks up a localized string similar to Client option '{0}' does not support value '{1}'.. - - - - - Looks up a localized string similar to Client option '{0}' is not recognized as valid.. - - - - - Looks up a localized string similar to {0} '{1}' does not exist in schema '{2}'.. - - - - - Looks up a localized string similar to '{0}' cannot be set to false with DNS SRV lookup enabled.. - - - - - Looks up a localized string similar to Scheme '{0}' is not valid.. - - - - - - Looks up a localized string similar to Compression using {0} is not supported.. - - - - - Looks up a localized string similar to Failed to load libzstd.dll. Removing zstd_stream from the client supported compression algorithms.. - - - - - Looks up a localized string similar to Compression using {0} is not supported in .NET Framework.. - - - - - Looks up a localized string similar to The connection property 'compression' acceptable values are: 'preferred', 'required' or 'disabled'. The value '{0}' is not acceptable.. - - - - - Looks up a localized string similar to Compression is not enabled.. - - - - - Looks up a localized string similar to Compression requested but the server does not support it.. - - - - - Looks up a localized string similar to There are still decompressed messages pending to be processed.. - - - - - Looks up a localized string similar to Duplicate key '{0}' used in "connection-attributes".. - - - - - Looks up a localized string similar to Key name in connection attribute cannot be an empty string.. - - - - - Looks up a localized string similar to At least one option must be specified.. - - - - - Looks up a localized string similar to This feature is currently not supported.. - - - - - Looks up a localized string similar to This functionality is only supported in MySQL {0} and higher.. - - - - - Looks up a localized string similar to Collation with id '{0}' not found.. - - - - - Looks up a localized string similar to The value of "connection-attributes" must be either a boolean or a list of key-value pairs.. - - - - - Looks up a localized string similar to Connection Data is incorrect.. - - - - - Looks up a localized string similar to The connection string is invalid.. - - - - - Looks up a localized string similar to '{0}' is not a valid connection string attribute.. - - - - - Looks up a localized string similar to The connection timeout value must be a positive integer (including 0).. - - - - - Looks up a localized string similar to Decimal (BCD) format is invalid.. - - - - - Looks up a localized string similar to Field type with name '{0}' not found.. - - - - - Looks up a localized string similar to Index type with name '{0}' not found.. - - - - - Looks up a localized string similar to The value provided is not a valid JSON document. {0}. - - - - - Looks up a localized string similar to {0} is not a valid column name in the row.. - - - - - Looks up a localized string similar to {0} is not a valid index for the row.. - - - - - Looks up a localized string similar to Session state is not valid.. - - - - - Looks up a localized string similar to Invalid Uri . - - - - - Looks up a localized string similar to Invalid uri query value. - - - - - Looks up a localized string similar to Key names in "connection-attributes" cannot start with "_".. - - - - - Looks up a localized string similar to Json configuration must contain 'uri' or 'host' but not both.. - - - - - Looks up a localized string similar to Keyword '{0}' not found.. - - - - - Looks up a localized string similar to Keyword not supported.. - - - - - Looks up a localized string similar to Field '{0}' is mandatory.. - - - - - Looks up a localized string similar to Missed required 'schema' option.. - - - - - Looks up a localized string similar to More than one document id was generated. Please use the DocumentIds property instead.. - - - - - Looks up a localized string similar to There is no data at index {0}. - - - - - Looks up a localized string similar to No 'host' has been specified.. - - - - - Looks up a localized string similar to No more data in resultset.. - - - - - Looks up a localized string similar to Object '{0}' not found. - - - - - Looks up a localized string similar to No placeholders.. - - - - - Looks up a localized string similar to {0} must be a value greater than 0.. - - - - - Looks up a localized string similar to Path not found '{0}'.. - - - - - Looks up a localized string similar to Queue timeout expired. The timeout period elapsed prior to getting a session from the pool.. - - - - - Looks up a localized string similar to Providing a port number as part of the host address isn't supported when using connection strings in basic format or anonymous objects. Use URI format instead.. - - - - - Looks up a localized string similar to You must either assign no priority to any of the hosts or give a priority for every host.. - - - - - Looks up a localized string similar to The priority must be between 0 and 100.. - - - - - Looks up a localized string similar to ProgramData path is not defined.. - - - - - Looks up a localized string similar to The server doesn't support the requested operation. Please update the MySQL Server and/or Client library. - - - - - Looks up a localized string similar to The process of closing the resultset and resulted in results being lost.. - - - - - Looks up a localized string similar to All server connection attempts were aborted. Timeout of {0} milliseconds was exceeded for each selected server.. - - - - - Looks up a localized string similar to All server connection attempts were aborted. Timeout was exceeded for each selected server.. - - - - - Looks up a localized string similar to Connection attempt to the server was aborted. Timeout of {0} milliseconds was exceeded.. - - - - - Looks up a localized string similar to Connection attempt to the server was aborted. Timeout was exceeded.. - - - - - Looks up a localized string similar to Unable to connect to any specified host.. - - - - - Looks up a localized string similar to Unable to read or decode data value.. - - - - - Looks up a localized string similar to Unable to open a session.. - - - - - Looks up a localized string similar to Unexpected end of packet found while reading data values. - - - - - Looks up a localized string similar to Field name '{0}' is not allowed.. - - - - - Looks up a localized string similar to Unknown placeholder :{0}. - - - - - Looks up a localized string similar to Value '{0}' is not of the correct type.. - - - - - Summary description for MySqlUInt64. - - - - - An exception thrown by MySQL when a type conversion does not succeed. - - - - Initializes a new instance of the class with a specified error message. - Message describing the error. - - - - Represents a datetime data type object in a MySql database. - - - - - Defines whether the UTF or local timezone will be used. - - - - - Constructs a new MySqlDateTime object by setting the individual time properties to - the given values. - - The year to use. - The month to use. - The day to use. - The hour to use. - The minute to use. - The second to use. - The microsecond to use. - - - - Constructs a new MySqlDateTime object by using values from the given object. - - The object to copy. - - - - Constructs a new MySqlDateTime object by copying the current value of the given object. - - The MySqlDateTime object to copy. - - - - Enables the contruction of a MySqlDateTime object by parsing a string. - - - - - Indicates if this object contains a value that can be represented as a DateTime - - - - Returns the year portion of this datetime - - - Returns the month portion of this datetime - - - Returns the day portion of this datetime - - - Returns the hour portion of this datetime - - - Returns the minute portion of this datetime - - - Returns the second portion of this datetime - - - - Returns the milliseconds portion of this datetime - expressed as a value between 0 and 999 - - - - - Returns the microseconds portion of this datetime (6 digit precision) - - - - - Returns true if this datetime object has a null value - - - - - Retrieves the value of this as a DateTime object. - - - - Returns this value as a DateTime - - - Returns a MySQL specific string representation of this value - - - - - - - - - Represents a decimal data type object in a MySql database. - - - - - Gets a boolean value signaling if the type is null. - - - - - Gets or sets the decimal precision of the type. - - - - - Gets or sets the scale of the type. - - - - - Gets the decimal value associated to this type. - - - - - Converts this decimal value to a double value. - - The value of this type converted to a dobule value. - - - - Represents a geometry data type object in a MySql database. - - - - - Gets the x coordinate. - - - - - Gets the y coordinate. - - - - - Gets the SRID value. - - - - - Gets a boolean value that signals if the type is null. - - - - - Gets the value associated to this type. - - - - - Gets the value associated to this type. - - - - Returns the Well-Known Text representation of this value - POINT({0} {1})", longitude, latitude - http://dev.mysql.com/doc/refman/4.1/en/gis-wkt-format.html - - - - Get value from WKT format - SRID=0;POINT (x y) or POINT (x y) - - WKT string format - - - - Try to get value from WKT format - SRID=0;POINT (x y) or POINT (x y) - - WKT string format - Out mysqlGeometryValue - - - - Sets the DSInfo when GetSchema is called for the DataSourceInformation collection. - - - - - Gets the well-known text representation of the geomtry object. - - A string representation of the WKT. - - - - Provides functionality for loading unmanaged libraries. - - - - - Loads the specified unmanaged library from the embedded resources. - - The application name. - The library name. - - - - Provides support for configuring X Protocol compressed messages. - - - - - The capabilities sub-key used to specify the compression algorithm. - - - - - The capabilities key used to specify the compression capability. - - - - - Messages with a value lower than this threshold will not be compressed. - - - - - Default value for enabling or disabling combined compressed messages. - - - - - Default value for the maximum number of combined compressed messages contained in a compression message. - - - - - deflate_stream compression algorithm. - - - - - lz4_message compression algorithm. - - - - - The capabilities sub-key used to specify if combining compressed messages is permitted. - - - - - The capabilities sub-key used to specify the maximum number of compressed messages contained in a compression message. - - - - - zstd_stream compression algorithm. - - - - - Buffer used to store the data received from the server. - - - - - Deflate stream used for compressing data. - - - - - Deflate stream used for decompressing data. - - - - - Flag indicating if the initialization is for compression or decompression. - - - - - Stores the communication packet generated the last time ReadNextBufferedMessage method was called. - - - - - Indicates if the libzstd.dll has been loaded. - - - - - Stream used to store multiple X Protocol messages. - - - - - ZStandard stream used for decompressing data. - - - - - Static constructor used to initialize the client supported compression algorithms. - - - - - Main constructor used to set the compression algorithm and initialize the list of messages to - be compressed by the client. - - The compression algorithm to use. - Flag indicating if the initialization is for compression or decompression. - - - - Gets or sets the list of messages that should be compressed by the client when compression is enabled. - - - - - Gets or sets an array containing the compression algorithms supported by the client. - - - - - Gets or sets the compression algorithm. - - - - - Flag indicating if compression is enabled. - - - - - Flag indicating if the last decompressed message contains multiple messages. - - - - - General method used to compress data using the compression algorithm defined in the constructor. - - The data to compress. - A compressed byte array. - - - - Compresses data using the deflate_stream algorithm. - - The data to compress. - A compressed byte array. - - - - Compresses data using the lz4_message algorithm. - - The data to compress. - A compressed byte array. - - - - Compresses data using the zstd_stream algorithm. - - The data to compress. - A compressed byte array. - - - - General method used to decompress data using the compression algorithm defined in the constructor. - - The data to decompress. - The expected length of the decompressed data. - A decompressed byte array. - - - - Decompresses data using the deflate_stream compression algorithm. - - The data to decompress. - The expected length of the decompressed data. - A decompressed byte array. - - - - Decompresses data using the lz4_message compression algorithm. - - The data to decompress. - The expected length of the decompressed data. - A decompressed byte array. - - - - Decompresses data using the zstd_stream compression algorithm. - - The data to decompress. - The expected length of the decompressed data. - A decompressed byte array. - - - - Closes and disposes of any open streams. - - - - - Gets the byte array representing the next X Protocol frame that is stored in cache. - - A byte array representing an X Protocol frame. - - - - Gets a representing the next X Protocol frame that is stored in cache. - - A with the next X Protocol frame. - - - - Loads the libzstd.dll assembly. - - - - - This object store the required parameters to create a Collection with schema validation. - - If false, throws an exception if the collection exists. - Object which hold the Level and Schema parameters - - - - - This object store the required parameters to Modify a Collection with schema validation. - - Object which hold the Level and Schema parameters - - - - - This object store the required parameters to create a Collection with schema validation. - - It can be STRICT to enable schema validation or OFF to disable - The JSON which define the rules to be validated in the collection - - - - The possible values for parameter Level in Validation object. - - Enforce schema validation. - Schema validation disabled. - - - - Implementation of EXTERNAL authentication type. - - - - - Implementation of MySQL41 authentication type. - - - - - Implementation of PLAIN authentication type. - - - - - Compares two Guids in string format. - - The first string to compare. - The first string to compare. - An integer that indicates the lexical relationship between the two comparands, similar to - - - - Compares two objects. - - The first to compare. - The second to compare. - An integer that indicates the lexical relationship between the two comparands, similar to - - - - Constructor that sets the stream used to read or write data. - - The stream used to read or write data. - - - - Constructor that sets the stream used to read or write data and the compression controller. - - The stream used to read or write data. - The compression controller. - - - - Gets or sets the compression controller uses to manage compression operations. - - - - - Writes X Protocol frames to the X Plugin. - - The integer representation of the client message identifier used for the message. - The message to include in the X Protocol frame. - - - - Writes X Protocol frames to the X Plugin. - - The client message identifier used for the message. - The message to include in the X Protocol frame. - - - - Reads X Protocol frames incoming from the X Plugin. - - A instance representing the X Protocol frame that was read. - - - - Abstract class for the protocol base operations in client/server communication. - - - - - Expression parser for MySQL-X protocol. - - - string being parsed. - - - Token stream produced by lexer. - - - Parser's position in token stream. - - - Mapping of names to positions for named placeholders. Used for both string values ":arg" and numeric values ":2". - - - Number of positional placeholders. - - - Are relational columns identifiers allowed? - - - Token types used by the lexer. - - - Token. Includes type and string value of the token. - - - Mapping of reserved words to token types. - - - Does the next character equal the given character? (respects bounds) - - - Helper function to match integer or floating point numbers. This function should be called when the position is on the first character of the number (a - digit or '.'). - - @param i The current position in the string - @return the next position in the string after the number. - - - Lexer for MySQL-X expression language. - - - Assert that the token at pos is of type type. - - - Does the current token have type `t'? - - - Does the next token have type `t'? - - - Does the token at position `pos' have type `t'? - - - Consume token. - - @return the string value of the consumed token - - - Parse a paren-enclosed expression list. This is used for function params or IN params. - - @return a List of expressions - - - Parse a function call of the form: IDENTIFIER PAREN_EXPR_LIST. - - @return an Expr representing the function call. - - - Parse an identifier for a function call: [schema.]name - - - Parse a document path member. - - - Parse a document path array index. - - - Parse a JSON-style document path, like WL#7909, but prefix by @. instead of $. - - - Parse a document field. - - - Parse a column identifier (which may optionally include a JSON document path). - - - Build a unary operator expression. - - - Parse an atomic expression. (c.f. grammar at top) - - - Parse a left-associated binary operator. - - @param types - The token types that denote this operator. - @param innerParser - The inner parser that should be called to parse operands. - @return an expression tree of the binary operator or a single operand - - - Parse the entire string as an expression. - - @return an X-protocol expression tree - - - - Parse an ORDER BY specification which is a comma-separated list of expressions, each may be optionally suffixed by ASC/DESC. - - - Parse a SELECT projection which is a comma-separated list of expressions, each optionally suffixed with a target alias. - - - Parse an INSERT field name. - @todo unit test - - - Parse an UPDATE field which can include can document paths. - - - Parse a document projection which is similar to SELECT but with document paths as the target alias. - - - Parse a list of expressions used for GROUP BY. - - - @return the number of positional placeholders in the expression. - - - @return a mapping of parameter names to positions. - - - Proto-buf helper to build a LITERAL Expr with a Scalar NULL type. - - - Proto-buf helper to build a LITERAL Expr with a Scalar DOUBLE type (wrapped in Any). - - - Proto-buf helper to build a LITERAL Expr with a Scalar SINT (signed int) type (wrapped in Any). - - - Proto-buf helper to build a LITERAL Expr with a Scalar UINT (unsigned int) type (wrapped in Any). - - - Proto-buf helper to build a LITERAL Expr with a Scalar STRING type (wrapped in Any). - - - Proto-buf helper to build a LITERAL Expr with a Scalar OCTETS type (wrapped in Any). - - - Proto-buf helper to build a LITERAL Expr with a Scalar BOOL type (wrapped in Any). - - - Wrap an Any value in a LITERAL expression. - - - Build an Any with a string value. - - - - Parses an anonymous object into a dictionary. - - The object to parse. - A dictionary if the provided object is an anonymous object; otherwise, null. - - - List of operators which will be serialized as infix operators. - - - Scalar to string. - - - JSON document path to string. - - - Column identifier (or JSON path) to string. - - - Function call to string. - - - Create a string from a list of (already stringified) parameters. Surround by parens and separate by commas. - - - Convert an operator to a string. Includes special cases for chosen infix operators (AND, OR) and special forms such as LIKE and BETWEEN. - - - Escape a string literal. - - - Quote a named identifer. - - - Serialize an expression to a string. - - - - Build the message to be sent to MySQL Server to execute statement "Create" or "Modify" collection with schema options - - The namespace - The name of the command to be executed on MySql Server - Array of KeyValuePairs with the parameters required to build the message - void. - - - - Sends the delete documents message - - - - - Sends the CRUD modify message - - - - - Class implementation for a default communication kind. - - - - - Constructor method for the communication routing service - - A MySqlXConnectionStringBuilder setted with the information to use in the connection - - - - Gets the current connection base on the connection mode - - One of the values of ConnectionMode Offline, ReadOnly, WriteOnly, ReadWrite - - - - - Abstract class used to define the kind of server in environments with multiple types of distributed systems. - - - - - Main class for parsing json strings. - - - - - Initializes a new instance of the JsonParser class. - - - - - Parses the received string into a dictionary. - - The string to parse. - A object that represents the parsed string. - - - - Abstract class to manage and encapsulate one or more actual connections. - - - - - Creates a new session object with the values of the settings parameter. - - Settings to be used in the session object - - - - Sets the connection's charset default collation. - - The opened session. - The character set. - - - - Gets the version of the server. - - An instance of containing the server version. - - - - Gets the thread Id of the connection. - - Thread Id - - - - Implementation class for object that manages low-level work of queuing tasks onto threads. - - - - - Implementation class of InternalSession to manage connections using the Xprotocol type object. - - - - - Defines the compression controller that will be passed on the instance when - compression is enabled. - - - - - Defines the compression controller that will be passed on the instance when - compression is enabled. - - - - - The used client to handle SSH connections. - - - - - Negotiates compression capabilities with the server. - - An array containing the compression algorithms supported by the server. - - - - Prepare the dictionary of arguments required to create a MySQL message. - - The name of the MySQL schema. - The name of the collection. - This object hold the parameters required to create the collection. - - Collection referente. - - - - Prepare the dictionary of arguments required to Modify a MySQL message. - - The name of the MySQL schema. - The name of the collection. - This object hold the parameters required to Modify the collection. - - Collection referente. - - - - Gets the compression algorithm being used to compress or decompress data. - - Flag to indicate if the compression algorithm should be - retrieved from the reader or writer controller. - The name of the compression algorithm being used if any. - null if no compression algorithm is being used. - - - - Represents a base class for a Session. - - - - - Flag to set if prepared statements are supported. - - - - - Gets the connection settings for this session. - - - - - Gets the currently active schema. - - - - - Gets the default schema provided when creating the session. - - - - - Gets the connection uri representation of the connection options provided during the creation of the session. - - - - - Initializes a new instance of the BaseSession class based on the specified connection string. - - The connection used to create the session. - is null. - Unable to parse the when - in URI format. - - When using Unix sockets the protocol=unix or protocol=unixsocket connection option is required. - This will enable elements passed in the server connection option to be treated as Unix sockets. The user is also required - to explicitly set sslmode to none since X Plugin does not support SSL when using Unix sockets. Note that - protocol=unix and protocol=unixsocket are synonyms. -   - Multiple hosts can be specified as part of the , - which enables client-side failover when trying to establish a connection. -   - Connection URI examples: - - mysqlx://test:test@[192.1.10.10,localhost] - - mysqlx://test:test@[192.1.10.10,127.0.0.1] - - mysqlx://root:@[../tmp/mysqlx.sock,/tmp/mysqld.sock]?protocol=unix&sslmode=none - - mysqlx://test:test@[192.1.10.10:33060,127.0.0.1:33060] - - mysqlx://test:test@[192.1.10.10,120.0.0.2:22000,[::1]:33060]/test?connectiontimeout=10 - - mysqlx://test:test@[(address=server.example,priority=20),(address=127.0.0.1,priority=100)] - - mysqlx://test:test@[(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25)] - -   - Connection string examples: - - server=10.10.10.10,localhost;port=33060;uid=test;password=test; - - host=10.10.10.10,192.101.10.2,localhost;port=5202;uid=test;password=test; - - host=./tmp/mysqld.sock,/var/run/mysqldx.sock;port=5202;uid=root;protocol=unix;sslmode=none; - - server=(address=server.example,priority=20),(address=127.0.0.1,priority=100);port=33060;uid=test;password=test; - - server=(address=server.example,priority=100),(address=127.0.0.1,priority=75),(address=192.0.10.56,priority=25);port=33060;uid=test;password=test; - -   - Failover methods - - Sequential: Connection attempts will be performed in a sequential order, that is, one after another until - a connection is successful or all the elements from the list have been tried. - - - Priority based: If a priority is provided, the connection attemps will be performed in descending order, starting - with the host with the highest priority. Priority must be a value between 0 and 100. Additionally, it is required to either - give a priority for every host or no priority to any host. - - - - - - Initializes a new instance of the BaseSession class based on the specified anonymous type object. - - The connection data as an anonymous type used to create the session. - is null. - - Multiple hosts can be specified as part of the , which enables client-side failover when trying to - establish a connection. -   - To assign multiple hosts, create a property similar to the connection string examples shown in - . Note that the value of the property must be a string. - - - - - - Drops the database/schema with the given name. - - The name of the schema. - is null. - - - - Creates a schema/database with the given name. - - The name of the schema/database. - A object that matches the recently created schema/database. - - - - Gets the schema with the given name. - - The name of the schema. - A object set with the provided schema name. - - - - Gets a list of schemas (or databases) in this session. - - A list containing all existing schemas (or databases). - - - - Starts a new transaction. - - - - - Commits the current transaction. - - A object containing the results of the commit operation. - - - - Rolls back the current transaction. - - - - - Closes this session or releases it to the pool. - - - - - Closes this session - - - - - Sets a transaction savepoint with an autogenerated name. - - The autogenerated name of the transaction savepoint. - - - - Sets a named transaction savepoint. - - The name of the transaction savepoint. - The name of the transaction savepoint. - - - - Removes the named savepoint from the set of savepoints within the current transaction. - - The name of the transaction savepoint. - - - - Rolls back a transaction to the named savepoint without terminating the transaction. - - The name of the transaction savepoint. - - - - Parses the connection data. - - The connection string or connection URI. - An updated connection string representation of the provided connection string or connection URI. - - - - Parses a connection URI. - - The connection URI to parse. - The connection string representation of the provided . - - - - Validates if the string provided is a Unix socket file. - - The Unix socket to evaluate. - true if is a valid Unix socket; otherwise, false. - - - - Converts the URI object into a connection string. - - An instance with the values for the provided connection options. - The path of the Unix socket file. - If true the replaces the value for the server connection option; otherwise, false - A connection string. - - - - Parses a connection string. - - The connection string to parse. - The parsed connection string. - - - - Normalizes the Unix socket by removing leading and ending parenthesis as well as removing special characters. - - The Unix socket to normalize. - A normalized Unix socket. - - - - Disposes the current object. Disposes of the managed state if the flag is set to true. - - Flag to indicate if the managed state is to be disposed. - - - - Disposes the current object. Code added to correctly implement the disposable pattern. - - - - - Describes the state of the session. - - - - - The session is closed. - - - - - The session is open. - - - - - The session object is connecting to the data source. - - - - - The session object is executing a command. - - - - - Class encapsulating a session pooling functionality. - - - - - Queue of demoted hosts. - - - - - List of hosts that will be attempted to connect to. - - - - - Timer to be used when a host have been demoted. - - - - - Remove hosts from the demoted list that have already been there for more - than 120,000 milliseconds and add them to the available hosts list. - - - - - Get a session from pool or create a new one. - - - - - - Closes all sessions the Client object created and destroys the managed pool. - - - - - Represents a collection of documents. - - - - - Creates an containing the provided objects that can be used to add - one or more items to a collection. - - The objects to add. - An object containing the objects to add. - is null. - This method can take anonymous objects, domain objects, or just plain JSON strings. - The statement can be further modified before execution. - - - - Creates a with the given condition that can be used to remove - one or more documents from a collection.The statement can then be further modified before execution. - - The condition to match documents. - A object set with the given condition. - is null or white space. - The statement can then be further modified before execution. - - - - Removes the document with the given identifier. - - The unique identifier of the document to replace. - A object containing the results of the execution. - is null or white space. - This is a direct execution method. - - - - Creates a with the given condition that can be used to modify one or more - documents from a collection. - - The condition to match documents. - A object set with the given condition. - is null or white space. - The statement can then be further modified before execution. - - - - Replaces the document matching the given identifier. - - The unique identifier of the document to replace. - The document to replace the matching document. - A object containing the results of the execution. - is null or whitespace. - is null. - This is a direct execution method. Operation succeeds even if no matching document was found; - in which case, the Result.RecordsAffected property is zero. If the new document contains an identifier, the value - is ignored. - - - - Adds the given document to the collection unless the identifier or any other field that has a unique index - already exists, in which case it will update the matching document. - - The unique identifier of the document to replace. - The document to replace the matching document. - A object containing the results of the execution. - The server version is lower than 8.0.3. - is null or white space. - is null. - The is different from the one in . - This is a direct execution method. - - - - Returns the number of documents in this collection on the server. - - The number of documents found. - - - - Creates a with the given condition which can be used to find documents in a - collection. - - An optional condition to match documents. - A object set with the given condition. - The statement can then be further modified before execution. - - - - Creates an index based on the properties provided in the JSON document. - - The index name. - JSON document describing the index to be created. - - is a JSON document with the following fields: - - - fields: array of IndexField objects, each describing a single document member to be - included in the index (see below). - - type: string, (optional) the type of index. One of INDEX or SPATIAL. Default is INDEX and may - be omitted. - -   - A single IndexField description consists of the following fields: - - - field: string, the full document path to the document member or field to be indexed. - - type: string, one of the supported SQL column types to map the field into (see the following list). - For numeric types, the optional UNSIGNED keyword may follow. For the TEXT type, the length to consider for - indexing may be added. - - required: bool, (optional) true if the field is required to exist in the document. defaults to - false, except for GEOJSON where it defaults to true. - - options: int, (optional) special option flags for use when decoding GEOJSON data. - - srid: int, (optional) srid value for use when decoding GEOJSON data. - -   - Supported SQL column types: - - - INT [UNSIGNED] - - TINYINT [UNSIGNED] - - SMALLINT [UNSIGNED] - - MEDIUMINT [UNSIGNED] - - INTEGER [UNSIGNED] - - BIGINT [UNSIGNED] - - REAL [UNSIGNED] - - FLOAT [UNSIGNED] - - DOUBLE [UNSIGNED] - - DECIMAL [UNSIGNED] - - NUMERIC [UNSIGNED] - - DATE - - TIME - - TIMESTAMP - - DATETIME - - TEXT[(length)] - - CHAR[(lenght)] - - GEOJSON (extra options: options, srid) - - - - - - Drops a collection index. - - The index name. - is null or white space. - - - - Verifies if the current collection exists in the server schema. - - true if the collection exists; otherwise, false. - - - - Returns the document with the given identifier. - - The unique identifier of the document to replace. - A object if a document matching given identifier exists; otherwise, null. - is null or white space. - This is a direct execution method. - - - - Base abstract class that defines elements inherited by all result types. - - - - - Gets the number of records affected by the statement that generated this result. - - - - - Gets the object of the session. - - - - - Gets a read-only collection of objects derived from statement execution. - - - - - Gets the number of warnings in the collection derived from statement execution. - - - - - No action is performed by this method. It is intended to be overriden by child classes if required. - - - - - Base abstract class for API statement. - - - - - - Initializes a new instance of the BaseStatement class based on the specified session. - - The session where the statement will be executed. - - - - Gets the that owns the statement. - - - - - Executes the base statements. This method is intended to be defined by child classes. - - A result object containing the details of the execution. - - - - Executes a statement asynchronously. - - A result object containing the details of the execution. - - - - Validates if the session is open and valid. - - - - - Sets the status as Changed for prepared statement validation. - - - - - Converts a statement to prepared statement for a second execution - without any change but Bind, Limit, or Offset. - - - - - Abstract class for buffered results. - - Generic result type. - - - - Index of the current item. - - - - - List of generic items in this buffered result. - - - - - Flag that indicates if all items have been read. - - - - - Gets a dictionary containing the column names and their index. - - - - - Gets the page size set for this buffered result. - - - - - Loads the column data into the field. - - - - - Retrieves a read-only list of the generic items associated to this buffered result. - - A generic list representing items in this buffered result. - - - - Retrieves one element from the generic items associated to this buffered result. - - A generic object that corresponds to the current or default item. - - - - Determines if all items have already been read. - - True if all items have been retrived, false otherwise. - - - - Gets the current item. - - All items have already been read. - - - - Determines if all items have already been read. - - True if all items have been retrived, false otherwise. - - - - Resets the value of the field to zero. - - - - - Gets an representation of this object. - - An representation of this object. - - - - Gets an representation of this object. - - An representation of this object. - - - - Retrieves a read-only list of the generic items associated to this buffered result. - - A generic list representing items in this buffered result. - - - - No body has been defined for this method. - - - - - Class to represent an error in this result. - - - - - Numeric code. - - - - - Return code indicating the outcome of the executed SQL statement. - - - - - Error message. - - - - - Initializes a new instance of the ErrorInfo class. - - - - - Abstract class for filterable statements. - - The filterable statement. - The database object. - The type of result. - - - - Initializes a new instance of the FiltarableStatement class based on the target and condition. - - The database object. - The optional filter condition. - - - - Enables the setting of Where condition for this operation. - - The Where condition. - The implementing statement type. - - - - Sets the number of items to be returned by the operation. - - The number of items to be returned. - The implementing statement type. - is equal or lower than 0. - - - - Sets the number of items to be skipped before including them into the result. - - The number of items to be skipped. - The implementing statement type. - - - - Binds the parameter values in filter expression. - - The parameter name. - The value of the parameter. - A generic object representing the implementing statement type. - - - - Binds the parameter values in filter expression. - - The parameters as a DbDoc object. - A generic object representing the implementing statement type. - - - - Binds the parameter values in filter expression. - - The parameters as a JSON string. - The implementing statement type. - - - - Binds the parameter values in filter expression. - - The parameters as an anonymous object: new { param1 = value1, param2 = value2, ... }. - The implementing statement type. - - - - Executes the statement. - - The function to execute. - The generic object to use. - A generic result object containing the results of the execution. - - - - Clones the filterable data but Session and Target remain the - same. - - A clone of this filterable statement. - - - - Represents a general statement result. - - - - - Gets the last inserted identifier (if there is one) by the statement that generated this result. - - - - - Gets the list of generated identifiers in the order of the Add() calls. - - - - - Abstract class to select a database object target. - - The database object. - The execution result. - - - - Initializes a new instance of the TargetedBaseStatement class based on the provided target. - - The database object. - - - - Gets the database target. - - - - - Represents a warning in this result. - - - - - Numeric value associated to the warning message. - - - - - Error message. - - - - - Strict level for the warning. - - - - - Initializes a new instance of the WarningInfo class based on the code and msg. - - The code for the warning. - The error message for the warning. - - - - Represents a chaining collection insert statement. - - - - - Adds documents to the collection. - - The documents to add. - This object. - The array is null. - - - - Executes the Add statement. - - A object containing the results of the execution. - - - - Implementation class for CRUD statements with collections using an index. - - - - - Executes this statement. - - A object containing the results of the execution. - - - - Represents a collection statement. - - - - - - Converts base s into objects. - - Array of objects to be converted to objects. - An enumerable collection of objects. - - - - Represents the result of an operation that includes a collection of documents. - - - - - Represents a chaining collection find statement. - - - - - List of column projections that shall be returned. - - List of columns. - This object set with the specified columns or fields. - - - - Executes the Find statement. - - A object containing the results of execution and data. - - - - Locks matching rows against updates. - - Optional row lock option to use. - This same object set with the lock shared option. - The server version is lower than 8.0.3. - - - - Locks matching rows so no other transaction can read or write to it. - - Optional row lock option to use. - This same object set with the lock exclusive option. - The server version is lower than 8.0.3. - - - - Sets the collection aggregation. - - The field list for aggregation. - This same object set with the specified group-by criteria. - - - - Filters criteria for aggregated groups. - - The filter criteria for aggregated groups. - This same object set with the specified filter criteria. - - - - Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like - "order ASC" or "pages DESC, age ASC". - - The order criteria. - A generic object representing the implementing statement type. - - - - Enables the setting of Where condition for this operation. - - The Where condition. - The implementing statement type. - - - - Represents a chaining collection modify statement. - - - - - Sets key and value. - - The document path key. - The new value. - This object. - - - - Changes value for a key. - - The document path key. - The new value. - This object. - - - - Removes keys or values from a document. - - An array of document paths representing the keys to be removed. - This object. - - - - Creates a object set with the changes to be applied to all matching documents. - - The JSON-formatted object describing the set of changes. - A object set with the changes described in . - can be a object, an anonymous object, or a JSON string. - is null. - is null or white space. - - - - Inserts an item into the specified array. - - The document path key including the index on which the item will be inserted. - The value to insert into the array. - A object containing the updated array. - - - - Appends an item to the specified array. - - The document path key. - The value to append to the array. - A object containing the updated array. - - - - Allows the user to set the sorting criteria for the operation. The strings use normal SQL syntax like - "order ASC" or "pages DESC, age ASC". - - The order criteria. - A generic object representing the implementing statement type. - - - - Enables the setting of Where condition for this operation. - - The Where condition. - The implementing statement type. - - - - Executes the modify statement. - - A object containing the results of the execution. - - - - Represents a chaining collection remove statement. - - - - - Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like - "order ASC" or "pages DESC, age ASC". - - The order criteria. - A generic object representing the implementing statement type. - - - - Enables the setting of Where condition for this operation. - - The Where condition. - The implementing statement type. - - - - Executes the remove statement. - - A object containing the results of the execution. - - - - Represents a database object. - - - - - Gets the session that owns the database object. - - - - - Gets the schema that owns the database object. - - - - - Gets the database object name. - - - - - Verifies that the database object exists in the database. - - True if the object exists in database, false otherwise. - - - - Represents a generic document in JSON format. - - - - - Initializes a new instance of the DbDoc class based on the object provided. The value can be a domain object, anonymous object, or JSON string. - - The value for this DbDoc. - - - - Gets the value of a document property. - - The key path for the property. - - - - - Gets the identifier of the document. - - - - - Gets a value indicating if this document has an identifier (property named _id with a value). - - - - - Sets a property on this document. - - The key of the property. - The new property value. - - - - Returns this document in Json format. - - A Json formatted string. - - - - Compares this DbDoc with another one. - - The DbDoc to compare to. - True if they are equal, false otherwise. - - - - Gets a value that serves as a hash function for a particular type. - - A hash code for the current object. - - - - Represents a collection of documents with a generic type. - - - - - Initializes a new instance of the generic Collection class based on the specified schema - and name. - - The object associated to this collection. - The name of the collection. - - - - Creates an containing the provided generic object. The add - statement can be further modified before execution. - - The generic object to add. - An object containing the object to add. - - - - Defines elements that allow to iterate through the contents of various items. - - - - - Initializes a new instance of the Iterator class. - - - - - This method is not yet implemented. - - - - Exception is always thrown since the body of the method is not yet implemented. - - - - Main class for session operations related to Connector/NET implementation of the X DevAPI. - - - - - Opens a session to the server given or to the first available server if multiple servers were specified. - - The connection string or URI string format. - A object representing the established session. - Multiple hosts can be specified as part of the which - will enable client side failover when trying to establish a connection. For additional details and syntax - examples refer to the remarks section. - - - - Opens a session to the server given. - - The connection data for the server. - A object representing the established session. - - - - Creates a new instance. - - The connection string or URI string format. - The connection options in JSON string format. - A object representing a session pool. - - - - Creates a new instance. - - The connection string or URI string format. - The connection options in object format. - - - new { pooling = new - { - enabled = true, - maxSize = 15, - maxIdleTime = 60000, - queueTimeout = 60000 - } - } - - - - A object representing a session pool. - - - - Creates a new instance. - - The connection data. - The connection options in JSON string format. - A object representing a session pool. - - - - Creates a new instance. - - The connection data. - The connection options in object format. - - - new { pooling = new - { - enabled = true, - maxSize = 15, - maxIdleTime = 60000, - queueTimeout = 60000 - } - } - - - - A object representing a session pool. - - - - Enables the creation of connection strings by exposing the connection options as properties. - Contains connection options specific to the X protocol. - - - - - Main constructor. - - - - - Constructor accepting a connection string. - - The connection string. - - - - Readonly field containing a collection of classic protocol and protocol shared connection options. - - - - - Gets or sets the connection timeout. - - - - - Gets or sets the connection attributes. - - - - - Path to a local file containing certificate revocation lists. - - - - - Gets or sets the compression type between client and server. - - - - - Gets or sets a connection option. - - The keyword that identifies the connection option to modify. - - - - Represents a table column. - - - - - Gets the original column name. - - - - - Gets the alias of the column name. - - - - - Gets the table name the column orginates from. - - - - - Gets the alias of the table name . - - - - - Gets the schema name the column originates from. - - - - - Gets the catalog the schema originates from. - In MySQL protocol this is `def` by default. - - - - - Gets the collation used for this column. - - - - - Gets the character set used for this column. - - - - - Gets the column length. - - - - - Gets the fractional decimal digits for floating point and fixed point numbers. - - - - - Gets the Mysql data type. - - - - - Gets the .NET Clr data type. - - - - - True if it's a signed number. - - - - - True if column is UINT zerofill or BYTES rightpad. - - - - - Initializes a new instance of the Column class. - - - - - Represents a resultset that contains rows of data. - - - - - Gets the columns in this resultset. - - - - - Gets the number of columns in this resultset. - - - - - Gets a list containing the column names in this resultset. - - - - - Gets the rows of this resultset. This collection will be incomplete unless all the rows have been read - either by using the Next method or the Buffer method. - - - - - Gets the value of the column value at the current index. - - The column index. - The CLR value at the column index. - - - - Allows getting the value of the column value at the current index. - - The column index. - The CLR value at the column index. - - - - Returns the index of the given column name. - - The name of the column to find. - The numeric index of column. - - - - Represents a single row of data in a table. - - - - - Gets the value of the row at the given index. - - The column index to retrieve the value. - The value at the index. - - - - Gets the value of the column as a string. - - The name of the column. - The value of the column as a string. - - - - Gets a string based indexer into the row. Returns the value as a CLR type. - - The column index to get. - The CLR value for the column. - - - - Inherits from . Creates a resultset that contains rows of data. - - - - - Represents a resultset that contains rows of data for relational operations. - - - - - Gets a boolean value indicating if this result has data. - - - - - Moves to next resultset. - - True if there is a new resultset, false otherwise. - - - - Represents a sql statement. - - - - - Initializes a new instance of the SqlStament class bassed on the session and sql statement. - - The session the Sql statement belongs to. - The Sql statement. - - - - Gets the current Sql statement. - - - - - Gets the list of parameters associated to this Sql statement. - - - - - Executes the current Sql statement. - - A object with the resultset and execution status. - - - - Binds the parameters values by position. - - The parameter values. - This set with the binded parameters. - - - - Represents a server Table or View. - - - - - Gets a value indicating whether the object is - a View (True) or a Table (False). - - - - - Creates a set with the columns to select. The table select - statement can be further modified before execution. This method is intended to select a set - of table rows. - - The optional column names to select. - A object for select chain operations. - - - - Creates a set with the fileds to insert to. The table - insert statement can be further modified before exeuction. This method is intended to - insert one or multiple rows into a table. - - The list of fields to insert. - A object for insert chain operations. - - - - Creates a . This method is intended to update table rows - values. - - A object for update chain operations. - - - - Creates a . This method is intended to delete rows from a - table. - - A object for delete chain operations. - - - - Returns the number of rows in the table on the server. - - The number of rows. - - - - Verifies if the table exists in the database. - - true if the table exists; otherwise, false. - - - - Represents a chaining table delete statement. - - - - - Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like - "order ASC" or "pages DESC, age ASC". - - The order criteria. - A generic object representing the implementing statement type. - - - - Executes the delete statement. - - A object containing the results of the delete execution. - - - - Represents a chaining table insert statement. - - - - - Executes the insert statement. - - A object containing the results of the insert statement. - - - - Values to be inserted. - Multiple rows supported. - - The values to be inserted. - This same object. - - - - Represents a chaining table select statement. - - - - - Executes the select statement. - - A object containing the results of the execution and data. - - - - Locks matching rows against updates. - - Optional row lock option to use. - This same object set with lock shared option. - The server version is lower than 8.0.3. - - - - Locks matching rows so no other transaction can read or write to it. - - Optional row lock option to use. - This same object set with the lock exclusive option. - The server version is lower than 8.0.3. - - - - Sets the table aggregation. - - The column list for aggregation. - This same object set with the specified group-by criteria. - - - - Filters criteria for aggregated groups. - - The filter criteria for aggregated groups. - This same object set with the specified filter criteria. - - - - Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like - "order ASC" or "pages DESC, age ASC". - - The order criteria. - A generic object that represents the implementing statement type. - - - - Represents a chaining table update statement. - - - - - Executes the update statement. - - A object ocntaining the results of the update statement execution. - - - - Column and value to be updated. - - Column name. - Value to be updated. - This same object. - - - - Sets user-defined sorting criteria for the operation. The strings use normal SQL syntax like - "order ASC" or "pages DESC, age ASC". - - The order criteria. - A generic object that represents the implementing statement type. - - - - Represents a schema or database. - - - - - Session related to current schema. - - - - - Returns a list of all collections in this schema. - - A list representing all found collections. - - - - Returns a list of all tables in this schema. - - A list representing all found tables. - - - - Gets a collection by name. - - The name of the collection to get. - Ensures the collection exists in the schema. - A object matching the given name. - - - - Gets a typed collection object. This is useful for using domain objects. - - The type of collection returned. - The name of collection to get. - A generic object set with the given name. - - - - Gets the given collection as a table. - - The name of the collection. - A object set with the given name. - - - - Gets a table object. Upon return the object may or may not be valid. - - The name of the table object. - A object set with the given name. - - - - Creates a collection. - - The name of the collection to create. - If false, throws an exception if the collection exists. - Collection referente. - - - - Creates a collection including a schema validation. - - The name of the collection to create. - This object hold the parameters required to create the collection. - - Collection referente. - - - - Modify a collection adding or removing schema validation parameters. - - The name of the collection to create. - This object encapsulate the Validation parameters level and schema. - Collection referente. - - - - Drops the given collection. - - The name of the collection to drop. - is null. - - - - Determines if this schema actually exists. - - True if exists, false otherwise. - - - - Represents a single server session. - - - - - Returns a object that can be used to execute the given SQL. - - The SQL to execute. - A object set with the provided SQL. - - - - Sets the schema in the database. - - The schema name to be set. - - - - Executes a query in the database to get the current schema. - - Current database object or null if no schema is selected. - - - Holder for reflection information generated from mysqlx.proto - - - File descriptor for mysqlx.proto - - - - IDs of messages that can be sent from client to the server - - .. note:: - this message is never sent on the wire. It is only used to let ``protoc`` - - * generate constants - * check for uniqueness - - - - Container for nested types declared in the ClientMessages message type. - - - - IDs of messages that can be sent from server to client - - .. note:: - this message is never sent on the wire. It is only used to let ``protoc`` - - * generate constants - * check for uniqueness - - - - Container for nested types declared in the ServerMessages message type. - - - - NOTICE has to stay at 11 forever - - - - - generic Ok message - - - - Field number for the "msg" field. - - - - generic Error message - - A ``severity`` of ``ERROR`` indicates the current message sequence is - aborted for the given error and the session is ready for more. - - In case of a ``FATAL`` error message the client should not expect - the server to continue handling any further messages and should - close the connection. - - :param severity: severity of the error message - :param code: error-code - :param sql_state: SQL state - :param msg: human readable error message - - - - Field number for the "severity" field. - - - Field number for the "code" field. - - - Field number for the "sql_state" field. - - - Field number for the "msg" field. - - - Container for nested types declared in the Error message type. - - - Holder for reflection information generated from mysqlx_connection.proto - - - File descriptor for mysqlx_connection.proto - - - - a Capability - - a tuple of a ``name`` and a :protobuf:msg:`Mysqlx.Datatypes::Any` - - - - Field number for the "name" field. - - - Field number for the "value" field. - - - - Capabilities - - - - Field number for the "capabilities" field. - - - - get supported connection capabilities and their current state - - :returns: :protobuf:msg:`Mysqlx.Connection::Capabilities` or :protobuf:msg:`Mysqlx::Error` - - - - - sets connection capabilities atomically - - only provided values are changed, other values are left unchanged. - If any of the changes fails, all changes are discarded. - - :precond: active sessions == 0 - :returns: :protobuf:msg:`Mysqlx::Ok` or :protobuf:msg:`Mysqlx::Error` - - - - Field number for the "capabilities" field. - - - - announce to the server that the client wants to close the connection - - it discards any session state of the server - - :Returns: :protobuf:msg:`Mysqlx::Ok` - - - - Field number for the "uncompressed_size" field. - - - Field number for the "server_messages" field. - - - Field number for the "client_messages" field. - - - Field number for the "payload" field. - - - Holder for reflection information generated from mysqlx_crud.proto - - - File descriptor for mysqlx_crud.proto - - - - DataModel to use for filters, names, ... - - - - - ViewAlgorithm defines how MySQL Server processes the view - - - - - MySQL chooses which algorithm to use - - - - - the text of a statement that refers to the view and the view definition are merged - - - - - the view are retrieved into a temporary table - - - - - ViewSqlSecurity defines the security context in which the view is going to be - executed, this means that VIEW can be executed with current user permissions or - with permissions of the uses who defined the VIEW - - - - - ViewCheckOption limits the write operations done on a `VIEW` - (`INSERT`, `UPDATE`, `DELETE`) to rows in which the `WHERE` clause is `TRUE` - - - - - the view WHERE clause is checked, but no underlying views are checked - - - - - the view WHERE clause is checked, then checking recurses to underlying views - - - - - column definition - - - - Field number for the "name" field. - - - - optional - - - - Field number for the "alias" field. - - - - optional - - - - Field number for the "document_path" field. - - - - a projection - - :param source: the expression identifying an element from the source data - which can include a column identifier or any expression - :param alias: optional alias. Required for DOCUMENTs (clients may use - the source string as default) - - - - Field number for the "source" field. - - - - required - - - - Field number for the "alias" field. - - - - optional - - - - - collection - - - - Field number for the "name" field. - - - - required - - - - Field number for the "schema" field. - - - - optional - - - - - limit - - :param row_count: maximum rows to filter - :param offset: maximum rows to skip before applying the row_count - - - - Field number for the "row_count" field. - - - - required - - - - Field number for the "offset" field. - - - - optional - - - - - limit expression - - LimitExpr in comparison to Limit, is able to specify that row_count and - offset are placeholders. - This message support expressions of following types Expr/literal/UINT, - Expr/PLACEHOLDER. - - :param row_count: maximum rows to filter - :param offset: maximum rows to skip before applying the row_count - - - - Field number for the "row_count" field. - - - - required - - - - Field number for the "offset" field. - - - - optional - - - - - sort order - - - - Field number for the "expr" field. - - - - required - - - - Field number for the "direction" field. - - - - optional//[ default=ASC ] - - - - Container for nested types declared in the Order message type. - - - - update operations - - :param source: specification of the value to be updated - if data_model is TABLE, a column name may be specified and also a document path, if the column has type JSON - if data_model is DOCUMENT, only document paths are allowed - in both cases, schema and table must be not set - :param operation: the type of operation to be performed - :param value: an expression to be computed as the new value for the operation - - - - Field number for the "source" field. - - - - required - - - - Field number for the "operation" field. - - - - required - - - - Field number for the "value" field. - - - - optional - - - - Container for nested types declared in the UpdateOperation message type. - - - - only allowed for TABLE - - - - - no value (removes the identified path from a object or array) - - - - - sets the new value on the identified path - - - - - replaces a value if the path exists - - - - - source and value must be documents - - - - - insert the value in the array at the index identified in the source path - - - - - append the value on the array at the identified path - - - - - merge JSON object value with the provided patch expression - - - - - Find Documents/Rows in a Collection/Table - - .. uml:: - - client -> server: Find - ... one or more Resultset ... - - :param collection: collection to insert into - :param data_model: datamodel that the operations refer to - :param projection: list of column projections that shall be returned - :param args: values for parameters used in filter expression - :param criteria: filter criteria - :param limit: numbers of rows that shall be skipped and returned (user can set one of: limit, limit_expr) - :param order: sort-order in which the rows/document shall be returned in - :param grouping: column expression list for aggregation (GROUP BY) - :param grouping_criteria: filter criteria for aggregated groups - :param locking: perform row locking on matches - :param locking_options: additional options how to handle locked rows - :param limit_expr: numbers of rows that shall be skipped and returned (user can set one of: limit, limit_expr) - :Returns: :protobuf:msg:`Mysqlx.Resultset::` - - - - Field number for the "collection" field. - - - - required - - - - Field number for the "data_model" field. - - - - optional - - - - Field number for the "projection" field. - - - Field number for the "criteria" field. - - - - optional - - - - Field number for the "args" field. - - - Field number for the "order" field. - - - Field number for the "grouping" field. - - - Field number for the "grouping_criteria" field. - - - - optional - - - - Field number for the "locking" field. - - - - optional - - - - Field number for the "locking_options" field. - - - - optional - - - - Field number for the "limit" field. - - - - optional - - - - Field number for the "limit_expr" field. - - - - optional - - - - Container for nested types declared in the Find message type. - - - - Lock matching rows against updates - - - - - Lock matching rows so no other transaction can read or write to it - - - - - Do not wait to acquire row lock, fail with an error if a requested row is locked - - - - - Do not wait to acquire a row lock, remove locked rows from the result set - - - - - Insert documents/rows into a collection/table - - :param collection: collection to insert into - :param data_model: datamodel that the operations refer to - :param projection: name of the columns to insert data into (empty if data_model is DOCUMENT) - :param row: set of rows to insert into the collection/table (a single expression with a JSON document literal or an OBJECT expression) - :param args: values for parameters used in row expressions - :param upsert: true if this should be treated as an Upsert (that is, update on duplicate key) - :Returns: :protobuf:msg:`Mysqlx.Resultset::` - - - - Field number for the "collection" field. - - - - required - - - - Field number for the "data_model" field. - - - - optional - - - - Field number for the "projection" field. - - - Field number for the "row" field. - - - Field number for the "args" field. - - - Field number for the "upsert" field. - - - - optional//[default = false] - - - - Container for nested types declared in the Insert message type. - - - Field number for the "field" field. - - - - Update documents/rows in a collection/table - - :param collection: collection to change - :param data_model: datamodel that the operations refer to - :param criteria: filter expression to match rows that the operations will apply on - :param args: values for parameters used in filter expression - :param limit: limits the number of rows to match (user can set one of: limit, limit_expr) - :param order: specifies order of matched rows - :param operation: list of operations to be applied. Valid operations will depend on the data_model. - :param limit_expr: limits the number of rows to match (user can set one of: limit, limit_expr) - :Returns: :protobuf:msg:`Mysqlx.Resultset::` - - - - Field number for the "collection" field. - - - - required - - - - Field number for the "data_model" field. - - - - optional - - - - Field number for the "criteria" field. - - - - optional - - - - Field number for the "args" field. - - - Field number for the "order" field. - - - Field number for the "operation" field. - - - Field number for the "limit" field. - - - - optional - - - - Field number for the "limit_expr" field. - - - - optional - - - - - Delete documents/rows from a Collection/Table - - :param collection: collection to change - :param data_model: datamodel that the operations refer to - :param criteria: filter expression to match rows that the operations will apply on - :param args: values for parameters used in filter expression - :param limit: limits the number of rows to match (user can set one of: limit, limit_expr) - :param order: specifies order of matched rows - :param limit_expr: limits the number of rows to match (user can set one of: limit, limit_expr) - :Returns: :protobuf:msg:`Mysqlx.Resultset::` - - - - Field number for the "collection" field. - - - - required - - - - Field number for the "data_model" field. - - - - optional - - - - Field number for the "criteria" field. - - - - optional - - - - Field number for the "args" field. - - - Field number for the "order" field. - - - Field number for the "limit" field. - - - - optional - - - - Field number for the "limit_expr" field. - - - - optional - - - - Field number for the "collection" field. - - - - required - - - - Field number for the "definer" field. - - - - optional - - - - Field number for the "algorithm" field. - - - - optional//[default = UNDEFINED] - - - - Field number for the "security" field. - - - - optional//[default = DEFINER] - - - - Field number for the "check" field. - - - - optional - - - - Field number for the "column" field. - - - Field number for the "stmt" field. - - - - required - - - - Field number for the "replace_existing" field. - - - - optional//[default = false] - - - - Field number for the "collection" field. - - - - required - - - - Field number for the "definer" field. - - - - optional - - - - Field number for the "algorithm" field. - - - - optional - - - - Field number for the "security" field. - - - - optional - - - - Field number for the "check" field. - - - - optional - - - - Field number for the "column" field. - - - Field number for the "stmt" field. - - - - optional - - - - Field number for the "collection" field. - - - - required - - - - Field number for the "if_exists" field. - - - - optional//[ default = false ] - - - - Holder for reflection information generated from mysqlx_cursor.proto - - - File descriptor for mysqlx_cursor.proto - - - - Open a cursor - - .. uml:: - - client -> server: Open - alt Success - ... none or partial Resultsets or full Resultsets ... - client <- server: StmtExecuteOk - else Failure - client <- server: Error - end - - :param cursor_id: client side assigned cursor id, the ID is going to represent new cursor and assigned to it statement - :param stmt: statement which resultset is going to be iterated through the cursor - :param fetch_rows: number of rows which should be retrieved from sequential cursor - :Returns: :protobuf:msg:`Mysqlx.Ok::` - - - - Field number for the "cursor_id" field. - - - - required - - - - Field number for the "stmt" field. - - - - required - - - - Field number for the "fetch_rows" field. - - - - optional - - - - Container for nested types declared in the Open message type. - - - Field number for the "type" field. - - - - required - - - - Field number for the "prepare_execute" field. - - - - optional - - - - Container for nested types declared in the OneOfMessage message type. - - - - Fetch next portion of data from a cursor - - .. uml:: - - client -> server: Fetch - alt Success - ... none or partial Resultsets or full Resultsets ... - client <- server: StmtExecuteOk - else - client <- server: Error - end - - :param cursor_id: client side assigned cursor id, must be already open - :param fetch_rows: number of rows which should be retrieved from sequential cursor - - - - Field number for the "cursor_id" field. - - - - required - - - - Field number for the "fetch_rows" field. - - - - optional - - - - - Close cursor - - .. uml:: - - client -> server: Close - alt Success - client <- server: Ok - else Failure - client <- server: Error - end - - :param cursor_id: client side assigned cursor id, must be allocated/open - :Returns: :protobuf:msg:`Mysqlx.Ok|Mysqlx.Error` - - - - Field number for the "cursor_id" field. - - - - required - - - - Holder for reflection information generated from mysqlx_datatypes.proto - - - File descriptor for mysqlx_datatypes.proto - - - - a scalar - - - - Field number for the "type" field. - - - - required - - - - Field number for the "v_signed_int" field. - - - Field number for the "v_unsigned_int" field. - - - Field number for the "v_octets" field. - - - - 4 is unused, was Null which doesn't have a storage anymore - - - - Field number for the "v_double" field. - - - Field number for the "v_float" field. - - - Field number for the "v_bool" field. - - - Field number for the "v_string" field. - - - Enum of possible cases for the "DefaultOneOf" oneof. - - - Container for nested types declared in the Scalar message type. - - - - a string with a charset/collation - - - - Field number for the "value" field. - - - - required - - - - Field number for the "collation" field. - - - Enum of possible cases for the "String_present" oneof. - - - - an opaque octet sequence, with an optional content_type - See ``Mysqlx.Resultset.ColumnMetadata`` for list of known values. - - - - Field number for the "value" field. - - - - required - - - - Field number for the "content_type" field. - - - - a object - - - - Field number for the "fld" field. - - - Container for nested types declared in the Object message type. - - - Field number for the "key" field. - - - - required - - - - Field number for the "value" field. - - - - required - - - - - a Array - - - - Field number for the "value" field. - - - - a helper to allow all field types - - - - Field number for the "type" field. - - - - required - - - - Field number for the "scalar" field. - - - Field number for the "obj" field. - - - Field number for the "array" field. - - - Container for nested types declared in the Any message type. - - - Holder for reflection information generated from mysqlx_expect.proto - - - File descriptor for mysqlx_expect.proto - - - - open an Expect block and set/unset the conditions that have to be fulfilled - - if any of the conditions fail, all enclosed messages will fail with - a Mysqlx.Error message. - - :returns: :protobuf:msg:`Mysqlx::Ok` on success, :protobuf:msg:`Mysqlx::Error` on error - - - - Field number for the "op" field. - - - - [ default = EXPECT_CTX_COPY_PREV ];//optional - - - - Field number for the "cond" field. - - - Container for nested types declared in the Open message type. - - - - copy the operations from the parent Expect-block - - - - - start with a empty set of operations - - - - Field number for the "condition_key" field. - - - - required - - - - Field number for the "condition_value" field. - - - - optional - - - - Field number for the "op" field. - - - - [ default = EXPECT_OP_SET ];//optional - - - - Container for nested types declared in the Condition message type. - - - - Change error propagation behaviour - - - - - Check if X Protocol field exists - - - - - Check if X Protocol support document _id generation - - - - - set the condition - - set, if not set - overwrite, if set - - - - - unset the condition - - - - - close a Expect block - - closing a Expect block restores the state of the previous Expect block - for the following messages - - :returns: :protobuf:msg:`Mysqlx::Ok` on success, :protobuf:msg:`Mysqlx::Error` on error - - - - Holder for reflection information generated from mysqlx_expr.proto - - - File descriptor for mysqlx_expr.proto - - - - Expressions - - the "root" of the expression tree - - .. productionlist:: - expr: `operator` | - : `identifier` | - : `function_call` | - : variable | - : `literal` | - : placeholder - - If expression type is PLACEHOLDER then it refers to the value of a parameter - specified when executing a statement (see `args` field of `StmtExecute` command). - Field `position` (which must be present for such an expression) gives 0-based - position of the parameter in the parameter list. - - - - Field number for the "type" field. - - - - required - - - - Field number for the "identifier" field. - - - Field number for the "variable" field. - - - Field number for the "literal" field. - - - Field number for the "function_call" field. - - - Field number for the "operator" field. - - - Field number for the "position" field. - - - Field number for the "object" field. - - - Field number for the "array" field. - - - Container for nested types declared in the Expr message type. - - - - identifier: name, schame.name - - .. productionlist:: - identifier: string "." string | - : string - - - - Field number for the "name" field. - - - - required - - - - Field number for the "schema_name" field. - - - - DocumentPathItem - - .. productionlist:: - document_path: path_item | path_item document_path - path_item : member | array_index | "**" - member : "." string | "." "*" - array_index : "[" number "]" | "[" "*" "]" - - - - Field number for the "type" field. - - - - required - - - - Field number for the "value" field. - - - Field number for the "index" field. - - - Container for nested types declared in the DocumentPathItem message type. - - - - .member - - - - - .* - - - - - [index] - - - - - [*] - - - - - ** - - - - - col_identifier (table): col@doc_path, tbl.col@doc_path col, tbl.col, schema.tbl.col - col_identifier (document): doc_path - - .. productionlist:: - col_identifier: string "." string "." string | - : string "." string | - : string | - : string "." string "." string "@" document_path | - : string "." string "@" document_path | - : string "@" document_path | - : document_path - document_path: member | arrayLocation | doubleAsterisk - member = "." string | "." "*" - arrayLocation = "[" index "]" | "[" "*" "]" - doubleAsterisk = "**" - - - - Field number for the "document_path" field. - - - Field number for the "name" field. - - - Field number for the "table_name" field. - - - Field number for the "schema_name" field. - - - - function call: ``func(a, b, "1", 3)`` - - .. productionlist:: - function_call: `identifier` "(" [ `expr` ["," `expr` ]* ] ")" - - - - Field number for the "name" field. - - - - required - - - - Field number for the "param" field. - - - - operator: ``<<(a, b)`` - - .. note:: - - Non-authoritative list of operators implemented (case sensitive): - - Nullary - * ``*`` - * ``default`` - - Unary - * ``!`` - * ``sign_plus`` - * ``sign_minus`` - * ``~`` - - Binary - * ``&&`` - * ``||`` - * ``xor`` - * ``==`` - * ``!=`` - * ``>`` - * ``>=`` - * ``<`` - * ``<=`` - * ``&`` - * ``|`` - * ``^`` - * ``<<`` - * ``>>`` - * ``+`` - * ``-`` - * ``*`` - * ``/`` - * ``div`` - * ``%`` - * ``is`` - * ``is_not`` - * ``regexp`` - * ``not_regexp`` - * ``like`` - * ``not_like`` - * ``cast`` - * ``cont_in`` - * ``not_cont_in`` - - Using special representation, with more than 2 params - * ``in`` (param[0] IN (param[1], param[2], ...)) - * ``not_in`` (param[0] NOT IN (param[1], param[2], ...)) - - Ternary - * ``between`` - * ``between_not`` - * ``date_add`` - * ``date_sub`` - - Units for date_add/date_sub - * ``MICROSECOND`` - * ``SECOND`` - * ``MINUTE`` - * ``HOUR`` - * ``DAY`` - * ``WEEK`` - * ``MONTH`` - * ``QUARTER`` - * ``YEAR`` - * ``SECOND_MICROSECOND`` - * ``MINUTE_MICROSECOND`` - * ``MINUTE_SECOND`` - * ``HOUR_MICROSECOND`` - * ``HOUR_SECOND`` - * ``HOUR_MINUTE`` - * ``DAY_MICROSECOND`` - * ``DAY_SECOND`` - * ``DAY_MINUTE`` - * ``DAY_HOUR`` - - Types for cast - * ``BINARY[(N)]`` - * ``CHAR[(N)]`` - * ``DATE`` - * ``DATETIME`` - * ``DECIMAL[(M[,D])]`` - * ``JSON`` - * ``SIGNED [INTEGER]`` - * ``TIME`` - * ``UNSIGNED [INTEGER]`` - - .. productionlist:: - operator: `name` "(" [ `expr` ["," `expr` ]* ] ")" - - - - Field number for the "name" field. - - - - required - - - - Field number for the "param" field. - - - - an object (with expression values) - - - - Field number for the "fld" field. - - - Container for nested types declared in the Object message type. - - - Field number for the "key" field. - - - - required - - - - Field number for the "value" field. - - - - required - - - - - a Array of expressions - - - - Field number for the "value" field. - - - Holder for reflection information generated from mysqlx_notice.proto - - - File descriptor for mysqlx_notice.proto - - - - Common Frame for all Notices - - ===================================================== ===== - .type value - ===================================================== ===== - :protobuf:msg:`Mysqlx.Notice::Warning` 1 - :protobuf:msg:`Mysqlx.Notice::SessionVariableChanged` 2 - :protobuf:msg:`Mysqlx.Notice::SessionStateChanged` 3 - ===================================================== ===== - - :param type: the type of the payload - :param payload: the payload of the notification - :param scope: global or local notification - - - - Field number for the "type" field. - - - - required - - - - Field number for the "scope" field. - - - - [ default = GLOBAL ];//optional - - - - Field number for the "payload" field. - - - - optional - - - - Container for nested types declared in the Frame message type. - - - - Server-side warnings and notes - - ``.scope`` == ``local`` - ``.level``, ``.code`` and ``.msg`` map the content of - - .. code-block:: sql - - SHOW WARNINGS - - ``.scope`` == ``global`` - (undefined) will be used for global, unstructured messages like: - - * server is shutting down - * a node disconnected from group - * schema or table dropped - - ========================================== ======================= - :protobuf:msg:`Mysqlx.Notice::Frame` field value - ========================================== ======================= - ``.type`` 1 - ``.scope`` ``local`` or ``global`` - ========================================== ======================= - - :param level: warning level: Note or Warning - :param code: warning code - :param msg: warning message - - - - Field number for the "level" field. - - - - [ default = WARNING ];//optional - - - - Field number for the "code" field. - - - - required - - - - Field number for the "msg" field. - - - - required - - - - Container for nested types declared in the Warning message type. - - - - Notify clients about changes to the current session variables - - Every change to a variable that is accessible through: - - .. code-block:: sql - - SHOW SESSION VARIABLES - - ========================================== ========= - :protobuf:msg:`Mysqlx.Notice::Frame` field value - ========================================== ========= - ``.type`` 2 - ``.scope`` ``local`` - ========================================== ========= - - :param namespace: namespace that param belongs to - :param param: name of the variable - :param value: the changed value of param - - - - Field number for the "param" field. - - - - required - - - - Field number for the "value" field. - - - - optional - - - - - Notify clients about changes to the internal session state - - ========================================== ========= - :protobuf:msg:`Mysqlx.Notice::Frame` field value - ========================================== ========= - ``.type`` 3 - ``.scope`` ``local`` - ========================================== ========= - - :param param: parameter key - :param value: updated value - - - - Field number for the "param" field. - - - - required - - - - Field number for the "value" field. - - - Container for nested types declared in the SessionStateChanged message type. - - - - .. more to be added - - - - Holder for reflection information generated from mysqlx_prepare.proto - - - File descriptor for mysqlx_prepare.proto - - - - Prepare a new statement - - .. uml:: - - client -> server: Prepare - alt Success - client <- server: Ok - else Failure - client <- server: Error - end - - :param stmt_id: client side assigned statement id, which is going to identify the result of preparation - :param stmt: defines one of following messages to be prepared - Crud.Find, Crud.Insert, Crud.Delete, Crud.Upsert, Sql.StmtExecute - :Returns: :protobuf:msg:`Mysqlx.Ok|Mysqlx.Error` - - - - Field number for the "stmt_id" field. - - - - required - - - - Field number for the "stmt" field. - - - - required - - - - Container for nested types declared in the Prepare message type. - - - Field number for the "type" field. - - - - required - - - - Field number for the "find" field. - - - - optional - - - - Field number for the "insert" field. - - - - optional - - - - Field number for the "update" field. - - - - optional - - - - Field number for the "delete" field. - - - - optional - - - - Field number for the "stmt_execute" field. - - - - optional - - - - Enum of possible cases for the "Type_present" oneof. - - - Container for nested types declared in the OneOfMessage message type. - - - - Determine which of optional fields was set by the client - (Workaround for missing "oneof" keyword in pb2.5) - - - - - Execute already prepared statement - - .. uml:: - - client -> server: Execute - alt Success - ... Resultsets... - client <- server: StmtExecuteOk - else Failure - client <- server: Error - end - - :param stmt_id: client side assigned statement id, must be already prepared - :param args_list: Arguments to bind to the prepared statement - :param compact_metadata: send only type information for :protobuf:msg:`Mysqlx.Resultset::ColumnMetadata`, skipping names and others - :Returns: :protobuf:msg:`Mysqlx.Ok::` - - - - Field number for the "stmt_id" field. - - - - required - - - - Field number for the "args" field. - - - Field number for the "compact_metadata" field. - - - - [ default = false ]; optional - - - - - Deallocate already prepared statement - - Deallocating the statement. - - .. uml:: - - client -> server: Deallocate - alt Success - client <- server: Ok - else Failure - client <- server: Error - end - - :param stmt_id: client side assigned statement id, must be already prepared - :Returns: :protobuf:msg:`Mysqlx.Ok|Mysqlx.Error` - - - - Field number for the "stmt_id" field. - - - - required - - - - Holder for reflection information generated from mysqlx_resultset.proto - - - File descriptor for mysqlx_resultset.proto - - - - a hint about the higher-level encoding of a BYTES field - - ====== ====== =========== - type value description - ====== ====== =========== - BYTES 0x0001 GEOMETRY (WKB encoding) - BYTES 0x0002 JSON (text encoding) - BYTES 0x0003 XML (text encoding) - ====== ====== =========== - - .. note:: - this list isn't comprehensive. As guideline: the field's value is expected - to pass a validator check on client and server if this field is set. - If the server adds more internal datatypes that rely on BLOB storage - like image manipulation, seeking into complex types in BLOBs, ... more - types will be added. - - - - - a hint about the higher-level encoding of a DATETIME field - - ====== ====== =========== - type value description - ======== ====== =========== - DATE 0x0001 DATETIME contains only date part - DATETIME 0x0002 DATETIME contains both date and time parts - ====== ====== =========== - - - - - resultsets are finished, OUT paramset is next - - - - - resultset and out-params are finished, but more resultsets available - - - - - all resultsets are finished - - - - - cursor is opened still the execution of PrepFetch or PrepExecute ended - - - - - meta data of a Column - - .. note:: the encoding used for the different ``bytes`` fields in the meta data is externally - controlled. - .. seealso:: https://dev.mysql.com/doc/refman/8.0/en/charset-connection.html - - .. note:: - The server may not set the ``original_{table|name}`` fields if they are equal to the plain - ``{table|name}`` field. - - A client has to reconstruct it like:: - - if .original_name is empty and .name is not empty: - .original_name = .name - - if .original_table is empty and .table is not empty: - .original_table = .table - - .. note:: - ``compact metadata format`` can be requested by the client. In that case only ``.type`` is set and - all other fields are empty. - - :param type: - .. table:: Expected Datatype of Mysqlx.Resultset.Row per SQL Type for non NULL values - - ================= ============ ======= ========== ====== ======== - SQL Type .type .length .frac_dig .flags .charset - ================= ============ ======= ========== ====== ======== - TINY SINT x - TINY UNSIGNED UINT x x - SHORT SINT x - SHORT UNSIGNED UINT x x - INT24 SINT x - INT24 UNSIGNED UINT x x - INT SINT x - INT UNSIGNED UINT x x - LONGLONG SINT x - LONGLONG UNSIGNED UINT x x - DOUBLE DOUBLE x x x - FLOAT FLOAT x x x - DECIMAL DECIMAL x x x - VARCHAR,CHAR,... BYTES x x x - GEOMETRY BYTES - TIME TIME x - DATE DATETIME x - DATETIME DATETIME x - YEAR UINT x x - TIMESTAMP DATETIME x - SET SET x - ENUM ENUM x - NULL BYTES - BIT BIT x - ================= ============ ======= ========== ====== ======== - - .. note:: the SQL "NULL" value is sent as an empty field value in :protobuf:msg:`Mysqlx.Resultset::Row` - .. seealso:: protobuf encoding of primitive datatypes are decribed in https://developers.google.com/protocol-buffers/docs/encoding - - SINT - - ``.length`` - maximum number of displayable decimal digits (including minus sign) of the type - - .. note:: - valid range is 0-255, but usually you'll see 1-20 - - =============== == - SQL Type max digits per type - =============== == - TINY SIGNED 4 - SHORT SIGNED 6 - INT24 SIGNED 8 - INT SIGNED 11 - LONGLONG SIGNED 20 - =============== == - - .. seealso:: definition of ``M`` in https://dev.mysql.com/doc/refman/8.0/en/numeric-type-overview.html - - ``value`` - variable length encoded signed 64 integer - - UINT - - ``.flags & 1`` (zerofill) - the client has to left pad with 0's up to .length - - ``.length`` - maximum number of displayable decimal digits of the type - - .. note:: - valid range is 0-255, but usually you'll see 1-20 - - ================= == - SQL Type max digits per type - ================= == - TINY UNSIGNED 3 - SHORT UNSIGNED 5 - INT24 UNSIGNED 8 - INT UNSIGNED 10 - LONGLONG UNSIGNED 20 - ================= == - - .. seealso:: definition of ``M`` in https://dev.mysql.com/doc/refman/8.0/en/numeric-type-overview.html - - ``value`` - variable length encoded unsigned 64 integer - - BIT - - ``.length`` - maximum number of displayable binary digits - - .. note:: valid range for M of the ``BIT`` type is 1 - 64 - .. seealso:: https://dev.mysql.com/doc/refman/8.0/en/numeric-type-overview.html - - ``value`` - variable length encoded unsigned 64 integer - - DOUBLE - - ``.length`` - maximum number of displayable decimal digits (including the decimal point and ``.fractional_digits``) - - ``.fractional_digits`` - maximum number of displayable decimal digits following the decimal point - - ``value`` - encoded as Protobuf's 'double' - - FLOAT - - ``.length`` - maximum number of displayable decimal digits (including the decimal point and ``.fractional_digits``) - - ``.fractional_digits`` - maximum number of displayable decimal digits following the decimal point - - ``value`` - encoded as Protobuf's 'float' - - BYTES, ENUM - BYTES is used for all opaque byte strings that may have a charset - - * TINYBLOB, BLOB, MEDIUMBLOB, LONGBLOB - * TINYTEXT, TEXT, MEDIUMTEXT, LONGTEXT - * VARCHAR, VARBINARY - * CHAR, BINARY - * ENUM - - ``.length`` - the maximum length of characters of the underlying type - - ``.flags & 1`` (rightpad) - if the length of the field is less than ``.length``, the receiver is - supposed to add padding characters to the right end of the string. - If the ``.charset`` is "binary", the padding character is ``0x00``, - otherwise it is a space character as defined by that character set. - - ============= ======= ======== ======= - SQL Type .length .charset .flags - ============= ======= ======== ======= - TINYBLOB 256 binary - BLOB 65535 binary - VARCHAR(32) 32 utf8 - VARBINARY(32) 32 utf8_bin - BINARY(32) 32 binary rightpad - CHAR(32) 32 utf8 rightpad - ============= ======= ======== ======= - - ``value`` - sequence of bytes with added one extra '\0' byte at the end. To obtain the - original string, the extra '\0' should be removed. - .. note:: the length of the string can be acquired with protobuf's field length() method - length of sequence-of-bytes = length-of-field - 1 - .. note:: the extra byte allows to distinguish between a NULL and empty byte sequence - - TIME - A time value. - - ``value`` - the following bytes sequence: - - ``| negate [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]`` - - * negate - one byte, should be one of: 0x00 for "+", 0x01 for "-" - * hour - optional variable length encoded unsigned64 value for the hour - * minutes - optional variable length encoded unsigned64 value for the minutes - * seconds - optional variable length encoded unsigned64 value for the seconds - * useconds - optional variable length encoded unsigned64 value for the microseconds - - .. seealso:: protobuf encoding in https://developers.google.com/protocol-buffers/docs/encoding - .. note:: hour, minutes, seconds, useconds are optional if all the values to the right are 0 - - Example: 0x00 -> +00:00:00.000000 - - DATETIME - A date or date and time value. - - ``value`` - a sequence of variants, arranged as follows: - - ``| year | month | day | [ | hour | [ | minutes | [ | seconds | [ | useconds | ]]]]`` - - * year - variable length encoded unsigned64 value for the year - * month - variable length encoded unsigned64 value for the month - * day - variable length encoded unsigned64 value for the day - * hour - optional variable length encoded unsigned64 value for the hour - * minutes - optional variable length encoded unsigned64 value for the minutes - * seconds - optional variable length encoded unsigned64 value for the seconds - * useconds - optional variable length encoded unsigned64 value for the microseconds - - .. note:: hour, minutes, seconds, useconds are optional if all the values to the right are 0 - - ``.flags & 1`` (timestamp) - - ============= ======= - SQL Type .flags - ============= ======= - DATETIME - TIMESTAMP 1 - - DECIMAL - An arbitrary length number. The number is encoded as a single byte - indicating the position of the decimal point followed by the Packed BCD - encoded number. Packed BCD is used to simplify conversion to and - from strings and other native arbitrary precision math datatypes. - .. seealso:: packed BCD in https://en.wikipedia.org/wiki/Binary-coded_decimal - - ``.length`` - maximum number of displayable decimal digits (*excluding* the decimal point and sign, but including ``.fractional_digits``) - - .. note:: should be in the range of 1 - 65 - - ``.fractional_digits`` - is the decimal digits to display out of length - - .. note:: should be in the range of 0 - 30 - - ``value`` - the following bytes sequence: - - ``| scale | BCD | sign | [0x0] |`` - - * scale - 8bit scale value (number of decimal digit after the '.') - * BCD - BCD encoded digits (4 bits for each digit) - * sign - sign encoded on 4 bits (0xc = "+", 0xd = "-") - * 0x0 - last 4bits if length(digits) % 2 == 0 - - Example: x04 0x12 0x34 0x01 0xd0 -> -12.3401 - - SET - A list of strings representing a SET of values. - - ``value`` - A sequence of 0 or more of protobuf's bytes (length prepended octets) or one of - the special sequences with a predefined meaning listed below. - - Example (length of the bytes array shown in brackets): - * ``[0]`` - the NULL value - * ``[1] 0x00`` - a set containing a blank string '' - * ``[1] 0x01`` - this would be an invalid value, but is to be treated as the empty set - * ``[2] 0x01 0x00`` - a set with a single item, which is the '\0' character - * ``[8] 0x03 F O O 0x03 B A R`` - a set with 2 items: FOO,BAR - - :param name: name of the column - :param original_name: name of the column before an alias was applied - :param table: name of the table the column orginates from - :param original_table: name of the table the column orginates from before an alias was applied - :param schema: schema the column originates from - :param catalog: - catalog the schema originates from - - .. note:: - as there is current no support for catalogs in MySQL, don't expect this field to be set. - In the MySQL C/S protocol the field had the value ``def`` all the time. - - :param fractional_digits: displayed factional decimal digits for floating point and fixed point numbers - :param length: maximum count of displayable characters of .type - :param flags: - ``.type`` specific flags - - ======= ====== =========== - type value description - ======= ====== =========== - UINT 0x0001 zerofill - DOUBLE 0x0001 unsigned - FLOAT 0x0001 unsigned - DECIMAL 0x0001 unsigned - BYTES 0x0001 rightpad - ======= ====== =========== - - ====== ================ - value description - ====== ================ - 0x0010 NOT_NULL - 0x0020 PRIMARY_KEY - 0x0040 UNIQUE_KEY - 0x0080 MULTIPLE_KEY - 0x0100 AUTO_INCREMENT - ====== ================ - - default: 0 - :param content_type: - a hint about the higher-level encoding of a BYTES field, for more informations - please refer to Mysqlx.Resultset.ContentType_BYTES enum. - - - - Field number for the "type" field. - - - - datatype of the field in a row - - - - Field number for the "name" field. - - - Field number for the "original_name" field. - - - Field number for the "table" field. - - - Field number for the "original_table" field. - - - Field number for the "schema" field. - - - Field number for the "catalog" field. - - - Field number for the "collation" field. - - - Field number for the "fractional_digits" field. - - - Field number for the "length" field. - - - Field number for the "flags" field. - - - Field number for the "content_type" field. - - - Container for nested types declared in the ColumnMetaData message type. - - - - Row in a Resultset - - a row is represented as a list of fields encoded as byte blobs. - Blob of size 0 represents the NULL value. Otherwise, if it contains at least - one byte, it encodes a non-null value of the field using encoding appropriate for the - type of the value given by ``ColumnMetadata``, as specified - in the :protobuf:msg:`Mysqlx.Resultset::ColumnMetaData` description. - - - - Field number for the "field" field. - - - Holder for reflection information generated from mysqlx_session.proto - - - File descriptor for mysqlx_session.proto - - - - the initial message send from the client to the server to start the - authentication proccess - - :param mech_name: authentication mechanism name - :param auth_data: authentication data - :param initial_response: initial response - :Returns: :protobuf:msg:`Mysqlx.Session::AuthenticateContinue` - - - - Field number for the "mech_name" field. - - - - required - - - - Field number for the "auth_data" field. - - - Field number for the "initial_response" field. - - - - send by client or server after a :protobuf:msg:`Mysqlx.Session::AuthenticateStart` to - exchange more auth data - - :param auth_data: authentication data - :Returns: :protobuf:msg:`Mysqlx.Session::AuthenticateContinue` - - - - Field number for the "auth_data" field. - - - - required - - - - - sent by the server after successful authentication - - :param auth_data: authentication data - - - - Field number for the "auth_data" field. - - - - reset the current session - param keep_open: if is true the session will be reset, but stays authenticated. - otherwise, the session will be closed and needs to be authenticated again. - - :Returns: :protobuf:msg:`Mysqlx::Ok` - - - - Field number for the "keep_open" field. - - - - close the current session - - :Returns: :protobuf:msg:`Mysqlx::Ok` - - - - Holder for reflection information generated from mysqlx_sql.proto - - - File descriptor for mysqlx_sql.proto - - - - execute a statement in the given namespace - - .. uml:: - - client -> server: StmtExecute - ... zero or more Resultsets ... - server --> client: StmtExecuteOk - - Notices: - This message may generate a notice containing WARNINGs generated by its execution. - This message may generate a notice containing INFO messages generated by its execution. - - :param namespace: namespace of the statement to be executed - :param stmt: statement that shall be executed. - :param args: values for wildcard replacements - :param compact_metadata: send only type information for :protobuf:msg:`Mysqlx.Resultset::ColumnMetadata`, skipping names and others - :returns: - * zero or one :protobuf:msg:`Mysqlx.Resultset::` followed by :protobuf:msg:`Mysqlx.Sql::StmtExecuteOk` - - - - Field number for the "namespace" field. - - - - optional [ default = "sql" ] - - - - Field number for the "stmt" field. - - - - required - - - - Field number for the "args" field. - - - Field number for the "compact_metadata" field. - - - - optional [ default = false ] - - - - - statement executed successful - - -
-
diff --git a/unimarc/unimarc/bin/Debug/Newtonsoft.Json.dll b/unimarc/unimarc/bin/Debug/Newtonsoft.Json.dll index e4a6339..7af125a 100644 Binary files a/unimarc/unimarc/bin/Debug/Newtonsoft.Json.dll and b/unimarc/unimarc/bin/Debug/Newtonsoft.Json.dll differ diff --git a/unimarc/unimarc/bin/Debug/Newtonsoft.Json.xml b/unimarc/unimarc/bin/Debug/Newtonsoft.Json.xml index aa245c5..008e0ca 100644 --- a/unimarc/unimarc/bin/Debug/Newtonsoft.Json.xml +++ b/unimarc/unimarc/bin/Debug/Newtonsoft.Json.xml @@ -2553,6 +2553,8 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . + A null value means there is no maximum. + The default value is 128. @@ -3012,7 +3014,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -3328,7 +3330,7 @@ Gets or sets the maximum depth allowed when reading JSON. Reading past this depth will throw a . A null value means there is no maximum. - The default value is null. + The default value is 128. @@ -7090,6 +7092,27 @@
The comparison used to match property names while merging. + + + Specifies the settings used when selecting JSON. + + + + + Gets or sets a timeout that will be used when executing regular expressions. + + The timeout that will be used when executing regular expressions. + + + + Gets or sets a flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + + A flag that indicates whether an error should be thrown if + no tokens are found when evaluating part of the expression. + + Represents an abstract JSON token. @@ -7985,6 +8008,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. A . + + + Selects a using a JSONPath expression. Selects the token that matches the object path. + + + A that contains a JSONPath expression. + + The used to select tokens. + A . + Selects a collection of elements using a JSONPath expression. @@ -8004,6 +8037,16 @@ A flag to indicate whether an error should be thrown if no tokens are found when evaluating part of the expression. An of that contains the selected elements. + + + Selects a collection of elements using a JSONPath expression. + + + A that contains a JSONPath expression. + + The used to select tokens. + An of that contains the selected elements. + Returns the responsible for binding operations performed on this object. diff --git a/unimarc/unimarc/bin/Debug/System.Buffers.dll b/unimarc/unimarc/bin/Debug/System.Buffers.dll index 4df5a36..f2d83c5 100644 Binary files a/unimarc/unimarc/bin/Debug/System.Buffers.dll and b/unimarc/unimarc/bin/Debug/System.Buffers.dll differ diff --git a/unimarc/unimarc/bin/Debug/System.Memory.dll b/unimarc/unimarc/bin/Debug/System.Memory.dll index 5d19470..4617199 100644 Binary files a/unimarc/unimarc/bin/Debug/System.Memory.dll and b/unimarc/unimarc/bin/Debug/System.Memory.dll differ diff --git a/unimarc/unimarc/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll b/unimarc/unimarc/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll index 67d56ef..c5ba4e4 100644 Binary files a/unimarc/unimarc/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll and b/unimarc/unimarc/bin/Debug/System.Runtime.CompilerServices.Unsafe.dll differ diff --git a/unimarc/unimarc/bin/Debug/Ubiety.Dns.Core.dll b/unimarc/unimarc/bin/Debug/Ubiety.Dns.Core.dll deleted file mode 100644 index 2f0c84e..0000000 Binary files a/unimarc/unimarc/bin/Debug/Ubiety.Dns.Core.dll and /dev/null differ diff --git a/unimarc/unimarc/bin/Debug/UniMarc.exe b/unimarc/unimarc/bin/Debug/UniMarc.exe index d58da96..36c907b 100644 Binary files a/unimarc/unimarc/bin/Debug/UniMarc.exe and b/unimarc/unimarc/bin/Debug/UniMarc.exe differ diff --git a/unimarc/unimarc/bin/Debug/UniMarc.exe.config b/unimarc/unimarc/bin/Debug/UniMarc.exe.config index 938db20..c35a7d9 100644 --- a/unimarc/unimarc/bin/Debug/UniMarc.exe.config +++ b/unimarc/unimarc/bin/Debug/UniMarc.exe.config @@ -1,12 +1,12 @@ - + - +
- + @@ -18,19 +18,31 @@ - - + + - - + + + + + + + + + + + + + + + + + + diff --git a/unimarc/unimarc/bin/Debug/UniMarc.pdb b/unimarc/unimarc/bin/Debug/UniMarc.pdb index af0d342..72bce3f 100644 Binary files a/unimarc/unimarc/bin/Debug/UniMarc.pdb and b/unimarc/unimarc/bin/Debug/UniMarc.pdb differ diff --git a/unimarc/unimarc/bin/Debug/Zstandard.Net.dll b/unimarc/unimarc/bin/Debug/Zstandard.Net.dll deleted file mode 100644 index 83934d1..0000000 Binary files a/unimarc/unimarc/bin/Debug/Zstandard.Net.dll and /dev/null differ diff --git a/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll b/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll index 7159c0a..4cfc10d 100644 Binary files a/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll and b/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll differ diff --git a/unimarc/unimarc/bin/Debug/temp/temp.txt b/unimarc/unimarc/bin/Debug/temp/temp.txt deleted file mode 100644 index 7cdffe8..0000000 --- a/unimarc/unimarc/bin/Debug/temp/temp.txt +++ /dev/null @@ -1,4 +0,0 @@ -9788969524102 1 간호사를 간호하는 간호사 경향BP 오성훈 13500 60 8100 [(주)글로리아북]납품 2021-07-14 오후 1:44 머리 10 -9791195010073 1 감정조절자(희망) : 나를 힘겹게 하는 나와 작별하기 프로젝트 헥소미아 김인자 16000 60 9600 [(주)글로리아북]납품 2021-07-14 오후 1:44 머리 11 -9788932320625 1 개는 우리를 어떻게 사랑하는가 : 개의 특별한 애정에 대한 과학적 탐구 현암사 클라이브 D. L. 윈 ; 전행선 17000 60 10200 [(주)글로리아북]납품 2021-07-14 오후 1:44 머리 12 -9791158491307 1 걷다 느끼다 쓰다 : 전문성과 대중성을 겸비한 글쓰기 수업 모아북스 이해사 15000 60 9000 [(주)글로리아북]납품 2021-07-14 오후 1:44 머리 13 diff --git a/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferences.cache b/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferences.cache index b814430..395eb45 100644 Binary files a/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferences.cache and b/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferences.cache differ diff --git a/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index 6fc1f8f..76d643e 100644 Binary files a/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/unimarc/unimarc/obj/Debug/ExcelTest.Marc.resources b/unimarc/unimarc/obj/Debug/ExcelTest.Marc.resources index dc21949..789003e 100644 Binary files a/unimarc/unimarc/obj/Debug/ExcelTest.Marc.resources and b/unimarc/unimarc/obj/Debug/ExcelTest.Marc.resources differ diff --git a/unimarc/unimarc/obj/Debug/Interop.SHDocVw.dll b/unimarc/unimarc/obj/Debug/Interop.SHDocVw.dll index ea6527a..76245bb 100644 Binary files a/unimarc/unimarc/obj/Debug/Interop.SHDocVw.dll and b/unimarc/unimarc/obj/Debug/Interop.SHDocVw.dll differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.Properties.Resources.resources b/unimarc/unimarc/obj/Debug/UniMarc.Properties.Resources.resources index d049fea..eb522bc 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.Properties.Resources.resources and b/unimarc/unimarc/obj/Debug/UniMarc.Properties.Resources.resources differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.csproj.AssemblyReference.cache b/unimarc/unimarc/obj/Debug/UniMarc.csproj.AssemblyReference.cache index 59ee298..559a2ed 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.csproj.AssemblyReference.cache and b/unimarc/unimarc/obj/Debug/UniMarc.csproj.AssemblyReference.cache differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.csproj.CoreCompileInputs.cache b/unimarc/unimarc/obj/Debug/UniMarc.csproj.CoreCompileInputs.cache index 07b81c1..2a73029 100644 --- a/unimarc/unimarc/obj/Debug/UniMarc.csproj.CoreCompileInputs.cache +++ b/unimarc/unimarc/obj/Debug/UniMarc.csproj.CoreCompileInputs.cache @@ -1 +1 @@ -a980cc54cfee34721f8734aaae513dd71cd3d934 +ad16a35a70790c263cbf0747895a86ffbd27fa022d03cce7d7af9bfcd3678dcd diff --git a/unimarc/unimarc/obj/Debug/UniMarc.csproj.FileListAbsolute.txt b/unimarc/unimarc/obj/Debug/UniMarc.csproj.FileListAbsolute.txt index 447a3a0..d43fc35 100644 --- a/unimarc/unimarc/obj/Debug/UniMarc.csproj.FileListAbsolute.txt +++ b/unimarc/unimarc/obj/Debug/UniMarc.csproj.FileListAbsolute.txt @@ -152,3 +152,191 @@ C:\Users\Administrator\Desktop\unimarc\unimarc\UniMarc\bin\Debug\arControl.Net4. C:\Users\Administrator\Desktop\unimarc\unimarc\UniMarc\bin\Debug\CarlosAg.ExcelXmlWriter.dll C:\Users\Administrator\Desktop\unimarc\unimarc\UniMarc\bin\Debug\arCommUtil.dll C:\Users\Administrator\Desktop\unimarc\unimarc\UniMarc\obj\Debug\UniMarc.csproj.AssemblyReference.cache +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\selenium-manager\linux\selenium-manager +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\selenium-manager\macos\selenium-manager +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\selenium-manager\windows\selenium-manager.exe +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\runtimes\win-x86\native\WebView2Loader.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\UniMarc.exe.config +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\UniMarc.exe +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\UniMarc.pdb +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\ko\UniMarc.resources.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\AngleSharp.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\arCommUtil.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\arControl.Net4.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\ArLog.Net4.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\CarlosAg.ExcelXmlWriter.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\ICSharpCode.SharpZipLib.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Bcl.AsyncInterfaces.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Web.WebView2.Core.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Web.WebView2.WinForms.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Web.WebView2.Wpf.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Win32.Registry.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Newtonsoft.Json.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Renci.SshNet.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Buffers.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Memory.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Numerics.Vectors.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Security.AccessControl.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Security.Principal.Windows.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Text.Encoding.CodePages.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Text.Encodings.Web.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Text.Json.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Threading.Tasks.Extensions.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.ValueTuple.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\WebDriver.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\WebDriver.Support.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\WebDriverManager.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\AngleSharp.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\ICSharpCode.SharpZipLib.pdb +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\ICSharpCode.SharpZipLib.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Bcl.AsyncInterfaces.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Web.WebView2.Wpf.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Win32.Registry.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Newtonsoft.Json.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Renci.SshNet.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Buffers.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Memory.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Numerics.Vectors.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Runtime.CompilerServices.Unsafe.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Security.AccessControl.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Security.Principal.Windows.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Text.Encoding.CodePages.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Text.Encodings.Web.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Text.Json.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.Threading.Tasks.Extensions.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\System.ValueTuple.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\WebDriver.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\WebDriver.Support.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Web.WebView2.Core.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\bin\Debug\Microsoft.Web.WebView2.WinForms.xml +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.csproj.AssemblyReference.cache +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\Interop.SHDocVw.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.csproj.ResolveComReference.cache +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.From_User_manage_List.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.AddMarc.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.AddMarc_FillBlank.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.CD_LP.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.CD_LP_AddList.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.CD_LP_List.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.CD_LP_SelectList.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.CD_LP_Sub.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Check_copyWD.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Check_Copy_Login.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Help_007.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Help_008.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Mac_List_Add.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.MarcCopySelect.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.Marc_FillBlank.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.납품관리.Bring_Back.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.납품관리.Order_Send_Chk.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.All_Book_Detail.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.All_Book_manage_Add.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.All_Book_manage_Edit.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Check_Copy_Sub_List.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Check_Copy_Sub_Search.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Check_ISBN_Split.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.마크.Check_ISBN_Sub.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Check_ISBN_Yes24.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.DLS_Manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\ExcelTest.findNchange.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\ExcelTest.Helper008.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.마크.Job_Order.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.마크.Mac_Chack_Up.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.마크.Mac_List_Merge.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Mac_Stat_Stat.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_mkList.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Plan_ClassSymbol.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Plan_GearExcel.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Plan_PrintLabel.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Plan_Sub_MarcEdit.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Plan_Sub_SelectList.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Plan_Sub_SelectList_Edit.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Plan_Sub_SelectList_Morge.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_Preview.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.마크.Make_Document.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\ExcelTest.Marc.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Marc_memo.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.마크.Search_Infor_Sub.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.ShowDeleteMarc.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.마크.Zoom_Picture.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Bill_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.회계.Part_time.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Purchase_Aggregation.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Purchase_Book.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Purchase_Input.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Remit_reg2.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.회계.Sales_Book.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Sales_Lookup.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Sales_Deposit.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.회계.Sales_Detail.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Sales_Input.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Purchase_not_pay.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Remit_reg.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.회계.Sales_In_Pay.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Account.Sales_Not_Pay.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Board.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Calendar.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Quick_menu.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Sale_End.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Sale_Member_Manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Sale_Sale.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Sale_Settlement.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Send_Notice.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Convenience.Talk.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Book_Lookup.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Commodity_Edit.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Commodity_Morge.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Commodity_registration.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Commodity_Search.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Input_Lookup_Stock.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.List_aggregation.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.List_Chk_Work.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.List_Lookup.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Order_input.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Order_input_Search.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Delivery.Purchase.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.DLS.Input_DLS.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.DLS.School_Lookup.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.Book_infor_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.ledger_of_use.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.memo.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.Order_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.pw_change.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.Transaction_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.Home_User_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.User_Infor.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home._Sub_Search_Form.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.All_Book_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Check_copy.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Check_ISBN.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Collect_Mac.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.DLS_Copy.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Mac_Output.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Equip_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Mac_Stat.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Mac_Input.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Mac_List.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Marc_Plan.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Nonverbal.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Search_Infor.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Set_Macro.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Setup_Shortcut.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac.Symbol_Add.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.Batch_processing.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Mac_Setting.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Notice_Send.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Sales_Details.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.User_account_inquiry.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.User_manage.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.login.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Main.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.Properties.Resources.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Work_log.Work_Log.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\WindowsFormsApp1.Home.Home_User_manage.ko.resources +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.csproj.GenerateResource.cache +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.csproj.CoreCompileInputs.cache +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\ko\UniMarc.resources.dll +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.csproj.Up2Date +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.exe +S:\Source\GLORIA\Unimarc\unimarc\UniMarc\obj\Debug\UniMarc.pdb diff --git a/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache b/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache index 230aab0..299a703 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache and b/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.csproj.ResolveComReference.cache b/unimarc/unimarc/obj/Debug/UniMarc.csproj.ResolveComReference.cache index 61c02fe..fe71897 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.csproj.ResolveComReference.cache and b/unimarc/unimarc/obj/Debug/UniMarc.csproj.ResolveComReference.cache differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.exe b/unimarc/unimarc/obj/Debug/UniMarc.exe index d58da96..36c907b 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.exe and b/unimarc/unimarc/obj/Debug/UniMarc.exe differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.pdb b/unimarc/unimarc/obj/Debug/UniMarc.pdb index af0d342..72bce3f 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.pdb and b/unimarc/unimarc/obj/Debug/UniMarc.pdb differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.마크.AddMarc.resources b/unimarc/unimarc/obj/Debug/UniMarc.마크.AddMarc.resources index dc21949..789003e 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.마크.AddMarc.resources and b/unimarc/unimarc/obj/Debug/UniMarc.마크.AddMarc.resources differ diff --git a/unimarc/unimarc/obj/Debug/WindowsFormsApp1.Mac.DLS_Copy.resources b/unimarc/unimarc/obj/Debug/WindowsFormsApp1.Mac.DLS_Copy.resources index dc21949..789003e 100644 Binary files a/unimarc/unimarc/obj/Debug/WindowsFormsApp1.Mac.DLS_Copy.resources and b/unimarc/unimarc/obj/Debug/WindowsFormsApp1.Mac.DLS_Copy.resources differ diff --git a/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll b/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll index 7159c0a..4cfc10d 100644 Binary files a/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll and b/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll differ diff --git a/unimarc/unimarc/packages.config b/unimarc/unimarc/packages.config index e7a4292..065c536 100644 --- a/unimarc/unimarc/packages.config +++ b/unimarc/unimarc/packages.config @@ -2,6 +2,7 @@ + diff --git a/unimarc/unimarc/납품관리/Commodity_Search.cs b/unimarc/unimarc/납품관리/Commodity_Search.cs index daa1600..bb50cde 100644 --- a/unimarc/unimarc/납품관리/Commodity_Search.cs +++ b/unimarc/unimarc/납품관리/Commodity_Search.cs @@ -190,7 +190,7 @@ namespace WindowsFormsApp1.Delivery dc.lbl_ID.Text = dataGridView1.Rows[idx].Cells["DLS_ID"].Value.ToString(); dc.lbl_PW.Text = dataGridView1.Rows[idx].Cells["DLS_PW"].Value.ToString(); dc.lbl_Area.Text = dataGridView1.Rows[idx].Cells["DLS_Area"].Value.ToString(); - dc.SetArea(dataGridView1.Rows[idx].Cells["DLS_Area"].Value.ToString(), true); + //dc.SetArea(dataGridView1.Rows[idx].Cells["DLS_Area"].Value.ToString(), true); } if (sl != null) { sl.tb_SearchClient.Text = value; diff --git a/unimarc/unimarc/마크/DLS_Copy.Designer.cs b/unimarc/unimarc/마크/DLS_Copy.Designer.cs index b0db8b9..d2d5dfe 100644 --- a/unimarc/unimarc/마크/DLS_Copy.Designer.cs +++ b/unimarc/unimarc/마크/DLS_Copy.Designer.cs @@ -33,6 +33,9 @@ this.panel1 = new System.Windows.Forms.Panel(); this.panel8 = new System.Windows.Forms.Panel(); this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.Book_name = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.ISBN = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.Check = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.panel5 = new System.Windows.Forms.Panel(); this.chk_RemoveBrit = new System.Windows.Forms.CheckBox(); this.chk_spChar = new System.Windows.Forms.CheckBox(); @@ -41,6 +44,7 @@ this.btn_Reflesh008 = new System.Windows.Forms.Button(); this.label2 = new System.Windows.Forms.Label(); this.rBtn_ISBN = new System.Windows.Forms.RadioButton(); + this.btnStop = new System.Windows.Forms.Button(); this.btn_Search = new System.Windows.Forms.Button(); this.rBtn_BookName = new System.Windows.Forms.RadioButton(); this.panel2 = new System.Windows.Forms.Panel(); @@ -53,15 +57,12 @@ this.btn_Close = new System.Windows.Forms.Button(); this.panel4 = new System.Windows.Forms.Panel(); this.panel7 = new System.Windows.Forms.Panel(); - this.webBrowser1 = new System.Windows.Forms.WebBrowser(); + this.webView21 = new Microsoft.Web.WebView2.WinForms.WebView2(); this.panel6 = new System.Windows.Forms.Panel(); this.btn_Back = new System.Windows.Forms.Button(); this.btn_Forward = new System.Windows.Forms.Button(); this.tb_URL = new System.Windows.Forms.TextBox(); - this.btnStop = new System.Windows.Forms.Button(); - this.Book_name = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ISBN = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Check = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.statusStrip1 = new System.Windows.Forms.StatusStrip(); this.panel1.SuspendLayout(); this.panel8.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); @@ -70,6 +71,7 @@ this.panel2.SuspendLayout(); this.panel4.SuspendLayout(); this.panel7.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.webView21)).BeginInit(); this.panel6.SuspendLayout(); this.SuspendLayout(); // @@ -97,6 +99,7 @@ // // panel8 // + this.panel8.Controls.Add(this.statusStrip1); this.panel8.Controls.Add(this.dataGridView1); this.panel8.Dock = System.Windows.Forms.DockStyle.Fill; this.panel8.Location = new System.Drawing.Point(0, 103); @@ -123,6 +126,25 @@ this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint); this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown); // + // Book_name + // + this.Book_name.HeaderText = "도서명"; + this.Book_name.Name = "Book_name"; + this.Book_name.Width = 140; + // + // ISBN + // + this.ISBN.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; + this.ISBN.HeaderText = "ISBN"; + this.ISBN.Name = "ISBN"; + this.ISBN.Width = 140; + // + // Check + // + this.Check.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; + this.Check.HeaderText = "Y/N"; + this.Check.Name = "Check"; + // // panel5 // this.panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; @@ -213,6 +235,16 @@ this.rBtn_ISBN.Text = "ISBN"; this.rBtn_ISBN.UseVisualStyleBackColor = true; // + // btnStop + // + this.btnStop.Location = new System.Drawing.Point(283, 5); + this.btnStop.Name = "btnStop"; + this.btnStop.Size = new System.Drawing.Size(65, 23); + this.btnStop.TabIndex = 2; + this.btnStop.Text = "중 지"; + this.btnStop.UseVisualStyleBackColor = true; + this.btnStop.Click += new System.EventHandler(this.btnStop_Click); + // // btn_Search // this.btn_Search.Location = new System.Drawing.Point(217, 5); @@ -326,23 +358,24 @@ // // panel7 // - this.panel7.Controls.Add(this.webBrowser1); + this.panel7.Controls.Add(this.webView21); this.panel7.Dock = System.Windows.Forms.DockStyle.Fill; this.panel7.Location = new System.Drawing.Point(0, 35); this.panel7.Name = "panel7"; this.panel7.Size = new System.Drawing.Size(929, 697); this.panel7.TabIndex = 7; // - // webBrowser1 + // webView21 // - this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill; - this.webBrowser1.Location = new System.Drawing.Point(0, 0); - this.webBrowser1.MinimumSize = new System.Drawing.Size(20, 20); - this.webBrowser1.Name = "webBrowser1"; - this.webBrowser1.ScriptErrorsSuppressed = true; - this.webBrowser1.Size = new System.Drawing.Size(929, 697); - this.webBrowser1.TabIndex = 5; - this.webBrowser1.DocumentCompleted += new System.Windows.Forms.WebBrowserDocumentCompletedEventHandler(this.webBrowser1_DocumentCompleted); + this.webView21.AllowExternalDrop = true; + this.webView21.CreationProperties = null; + this.webView21.DefaultBackgroundColor = System.Drawing.Color.White; + this.webView21.Dock = System.Windows.Forms.DockStyle.Fill; + this.webView21.Location = new System.Drawing.Point(0, 0); + this.webView21.Name = "webView21"; + this.webView21.Size = new System.Drawing.Size(929, 697); + this.webView21.TabIndex = 5; + this.webView21.ZoomFactor = 1D; // // panel6 // @@ -387,34 +420,13 @@ this.tb_URL.TabIndex = 0; this.tb_URL.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tb_URL_KeyDown); // - // btnStop + // statusStrip1 // - this.btnStop.Location = new System.Drawing.Point(283, 5); - this.btnStop.Name = "btnStop"; - this.btnStop.Size = new System.Drawing.Size(65, 23); - this.btnStop.TabIndex = 2; - this.btnStop.Text = "중 지"; - this.btnStop.UseVisualStyleBackColor = true; - this.btnStop.Click += new System.EventHandler(this.btnStop_Click); - // - // Book_name - // - this.Book_name.HeaderText = "도서명"; - this.Book_name.Name = "Book_name"; - this.Book_name.Width = 140; - // - // ISBN - // - this.ISBN.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.None; - this.ISBN.HeaderText = "ISBN"; - this.ISBN.Name = "ISBN"; - this.ISBN.Width = 140; - // - // Check - // - this.Check.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.Check.HeaderText = "Y/N"; - this.Check.Name = "Check"; + this.statusStrip1.Location = new System.Drawing.Point(0, 607); + this.statusStrip1.Name = "statusStrip1"; + this.statusStrip1.Size = new System.Drawing.Size(395, 22); + this.statusStrip1.TabIndex = 1; + this.statusStrip1.Text = "statusStrip1"; // // DLS_Copy // @@ -428,6 +440,7 @@ this.Load += new System.EventHandler(this.DLS_Copy_Load); this.panel1.ResumeLayout(false); this.panel8.ResumeLayout(false); + this.panel8.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); this.panel5.ResumeLayout(false); this.panel5.PerformLayout(); @@ -437,6 +450,7 @@ this.panel2.PerformLayout(); this.panel4.ResumeLayout(false); this.panel7.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.webView21)).EndInit(); this.panel6.ResumeLayout(false); this.panel6.PerformLayout(); this.ResumeLayout(false); @@ -461,7 +475,7 @@ private System.Windows.Forms.Label label2; private System.Windows.Forms.Button btn_Search; public System.Windows.Forms.Label lbl_Area; - private System.Windows.Forms.WebBrowser webBrowser1; + private Microsoft.Web.WebView2.WinForms.WebView2 webView21; private System.Windows.Forms.Panel panel4; private System.Windows.Forms.Panel panel6; private System.Windows.Forms.TextBox tb_URL; @@ -478,5 +492,6 @@ private System.Windows.Forms.DataGridViewTextBoxColumn ISBN; private System.Windows.Forms.DataGridViewTextBoxColumn Check; private System.Windows.Forms.Button btnStop; + private System.Windows.Forms.StatusStrip statusStrip1; } } \ No newline at end of file diff --git a/unimarc/unimarc/마크/DLS_Copy.cs b/unimarc/unimarc/마크/DLS_Copy.cs index 1a6eb4f..561616e 100644 --- a/unimarc/unimarc/마크/DLS_Copy.cs +++ b/unimarc/unimarc/마크/DLS_Copy.cs @@ -7,6 +7,8 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; +using Microsoft.Web.WebView2.Core; +using Microsoft.Web.WebView2.WinForms; namespace WindowsFormsApp1.Mac { @@ -28,9 +30,39 @@ namespace WindowsFormsApp1.Mac //변경된 홈페이지: https://dls.edunet.net/DLS/totalLoginMain 사용 ID / 비번 : t5191774 / tb5191774 } - private void DLS_Copy_Load(object sender, EventArgs e) + private async void DLS_Copy_Load(object sender, EventArgs e) { - webBrowser1.Navigate(url); + try + { + compidx = main.com_idx; + + this.Show(); + Application.DoEvents(); + + // WebView2 환경 준비 (Fixed Version 지원) + var environment = await WebView2Installer.GetWebView2EnvironmentAsync(); + await webView21.EnsureCoreWebView2Async(environment); + webView21.CoreWebView2.NavigationCompleted += WebView21_NavigationCompleted; + webView21.CoreWebView2.Navigate(url); + } + catch (Exception ex) + { + MessageBox.Show( + $"WebView2 초기화 중 오류가 발생했습니다: {ex.Message}\n\n" + + "웹 기능이 필요하면 나중에 다시 시도해 주세요.", + "WebView2 초기화 오류", + MessageBoxButtons.OK, + MessageBoxIcon.Error + ); + + // webView2 숨기고 오류 상태 표시 + webView21.Visible = false; + } + } + + private void WebView21_NavigationCompleted(object sender, CoreWebView2NavigationCompletedEventArgs e) + { + tb_URL.Text = webView21.CoreWebView2.Source; } private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e) @@ -63,7 +95,7 @@ namespace WindowsFormsApp1.Mac } #endregion - private void btn_Connect_Click(object sender, EventArgs e) + private async void btn_Connect_Click(object sender, EventArgs e) { if (lbl_Client.Text == "Client") { @@ -76,38 +108,43 @@ namespace WindowsFormsApp1.Mac return; } - string url = webBrowser1.Url.AbsoluteUri; + string url = webView21.CoreWebView2.Source; - webBrowser1.Document.GetElementById("headerLoginBtn").InvokeMember("click"); + //await webView21.CoreWebView2.ExecuteScriptAsync("document.getElementById('headerLoginBtn').click();"); - Delay(5000); + await Task.Delay(1000); - DLS_Login(url); + await DLS_Login(url); } #region Connect_SUB - private void DLS_Login(string url) + private async Task DLS_Login(string url) { if (lbl_ID.Text == "" || lbl_PW.Text == "") { MessageBox.Show("ID 혹은 PW가 없습니다."); return; } - string ID = lbl_ID.Text, PW = lbl_PW.Text; - url = webBrowser1.Document.GetElementById(SetArea(lbl_Area.Text)).GetAttribute("value"); + string ID = lbl_ID.Text.Trim(), PW = lbl_PW.Text.Trim(); + //string elementValue = await webView21.CoreWebView2.ExecuteScriptAsync($"document.getElementById('{await SetArea(lbl_Area.Text)}').value;"); + //url = elementValue.Trim('"'); - webBrowser1.Document.GetElementById("s_id").SetAttribute("value", ID); - webBrowser1.Document.GetElementById("s_pwd").SetAttribute("value", PW); + //id설정 + await webView21.CoreWebView2.ExecuteScriptAsync($"document.getElementById('lgID').value = '{ID}';"); - webBrowser1.Document.GetElementById("s_login").InvokeMember("click"); + //pw 설정 + await webView21.CoreWebView2.ExecuteScriptAsync($"document.getElementById('lgPW').value = '{PW}';"); - Delay(4000); - webBrowser1.Navigate(url + "/r/dls_new/bookInfo/collectionFormMA.jsp"); + //로그인버튼 클릭 + await webView21.CoreWebView2.ExecuteScriptAsync("document.getElementById('loginBtn').click();"); + + await Task.Delay(4000); + webView21.CoreWebView2.Navigate("https://dls1.edunet.net/DLS/bookMng/bookMain"); } #endregion private bool tStop = false; private int tSearchIDX = 0; - private void btn_Search_Click(object sender, EventArgs e) + private async void btn_Search_Click(object sender, EventArgs e) { tStop = false; if (dataGridView1.Rows[0].Cells["ISBN"].Value == null && rBtn_ISBN.Checked) @@ -120,16 +157,16 @@ namespace WindowsFormsApp1.Mac MessageBox.Show("도서명이 입력되지않았습니다!"); return; } - if (!SearchCopy(rBtn_ISBN.Checked)) + if (!await SearchCopy(rBtn_ISBN.Checked)) return; MessageBox.Show("완료되었습니다."); } #region SearchClick_Sub - private bool SearchCopy(bool isISBN) + private async Task SearchCopy(bool isISBN) { - if (!webBrowser1.Url.AbsoluteUri.Contains("collectionFormMA")) + if (!webView21.CoreWebView2.Source.Contains("collectionFormMA")) { MessageBox.Show("자료관리 창이 아닙니다!"); return false; @@ -144,12 +181,12 @@ namespace WindowsFormsApp1.Mac if (isISBN) { string Target = dataGridView1.Rows[a].Cells["ISBN"].Value.ToString(); - Check = SearchISBN(Target); + Check = await SearchISBN(Target); } else { string Target = dataGridView1.Rows[a].Cells["Book_name"].Value.ToString(); - Check = SearchName(Target); + Check = await SearchName(Target); } if (Check == "0") Check = ""; @@ -173,34 +210,15 @@ namespace WindowsFormsApp1.Mac ///
/// 도서명 /// 행 번호 - private string SearchName(string Target) + private async Task SearchName(string Target) { - HtmlElementCollection search = webBrowser1.Document.GetElementsByTagName("input"); - foreach (HtmlElement Search in search) - { - if (Search.Id == "bib1") - Search.SetAttribute("value", Target); + await webView21.CoreWebView2.ExecuteScriptAsync($"document.getElementById('bib1').value = '{Target.Replace("'", "\\'")}';"); + await webView21.CoreWebView2.ExecuteScriptAsync("document.querySelector('.button_search').click();"); + await Task.Delay(5000); - if (Search.GetAttribute("className") == "button_search") - Search.InvokeMember("click"); - } - Delay(5000); - - string InnerText = ""; - - HtmlElementCollection paging_nav = webBrowser1.Document.GetElementsByTagName("div"); - foreach (HtmlElement div in paging_nav) - { - if (div.GetAttribute("className") == "paging_nav") - { - HtmlElementCollection span = div.GetElementsByTagName("span"); - foreach (HtmlElement count in span) - { - InnerText = count.InnerText; - break; - } - } - } + string script = "(() => { const div = document.querySelector('.paging_nav'); return div ? div.querySelector('span')?.innerText || '' : ''; })()"; + string InnerText = await webView21.CoreWebView2.ExecuteScriptAsync(script); + InnerText = InnerText.Trim('"'); return InnerText; } @@ -209,41 +227,16 @@ namespace WindowsFormsApp1.Mac ///
/// ISBN /// 행 번호 - private string SearchISBN(string Target) + private async Task SearchISBN(string Target) { - HtmlElementCollection combo = webBrowser1.Document.GetElementsByTagName("select"); - foreach (HtmlElement Search in combo) - { - if (Search.Id == "bibKind2") - Search.SetAttribute("selectedIndex", "2"); - } + await webView21.CoreWebView2.ExecuteScriptAsync("document.getElementById('bibKind2').selectedIndex = 2;"); + await webView21.CoreWebView2.ExecuteScriptAsync($"document.getElementById('bib2').value = '{Target}';"); + await webView21.CoreWebView2.ExecuteScriptAsync("document.querySelector('.button_search').click();"); + await Task.Delay(5000); - HtmlElementCollection search = webBrowser1.Document.GetElementsByTagName("input"); - foreach (HtmlElement Search in search) - { - if (Search.Id == "bib2") - Search.SetAttribute("value", Target); - - if (Search.GetAttribute("className") == "button_search") - Search.InvokeMember("click"); - } - Delay(5000); - - string InnerText = ""; - - HtmlElementCollection paging_nav = webBrowser1.Document.GetElementsByTagName("div"); - foreach (HtmlElement div in paging_nav) - { - if (div.GetAttribute("className") == "paging_nav") - { - HtmlElementCollection span = div.GetElementsByTagName("span"); - foreach (HtmlElement count in span) - { - InnerText = count.InnerText; - break; - } - } - } + string script = "(() => { const div = document.querySelector('.paging_nav'); return div ? div.querySelector('span')?.innerText || '' : ''; })()"; + string InnerText = await webView21.CoreWebView2.ExecuteScriptAsync(script); + InnerText = InnerText.Trim('"'); return InnerText; } @@ -253,7 +246,7 @@ namespace WindowsFormsApp1.Mac /// DLS지역 코드 변환 ///
/// 코드 - public string SetArea(string dlsArea, bool move = false) + public async Task SetArea(string dlsArea, bool move = false) { string[] Area = { "서울", "부산", "대구", "인천", "광주", @@ -282,7 +275,9 @@ namespace WindowsFormsApp1.Mac { try { - webBrowser1.Navigate(webBrowser1.Document.GetElementById(Code[idx]).GetAttribute("value")); + string elementValue = await webView21.CoreWebView2.ExecuteScriptAsync($"document.getElementById('{Code[idx]}').value;"); + elementValue = elementValue.Trim('"'); + webView21.CoreWebView2.Navigate(elementValue); } catch (Exception ex) { @@ -318,17 +313,14 @@ namespace WindowsFormsApp1.Mac private void btn_Back_Click(object sender, EventArgs e) { - webBrowser1.GoBack(); + if (webView21.CoreWebView2.CanGoBack) + webView21.CoreWebView2.GoBack(); } private void btn_Forward_Click(object sender, EventArgs e) { - webBrowser1.GoForward(); - } - - private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e) - { - tb_URL.Text = webBrowser1.Url.AbsoluteUri; + if (webView21.CoreWebView2.CanGoForward) + webView21.CoreWebView2.GoForward(); } private void tb_URL_KeyDown(object sender, KeyEventArgs e) @@ -336,7 +328,7 @@ namespace WindowsFormsApp1.Mac if (e.KeyCode == Keys.Enter) { string url = tb_URL.Text; - webBrowser1.Navigate(url); + webView21.CoreWebView2.Navigate(url); } } diff --git a/unimarc/unimarc/마크/DLS_Copy.resx b/unimarc/unimarc/마크/DLS_Copy.resx index 5e7dfc7..4e20ee7 100644 --- a/unimarc/unimarc/마크/DLS_Copy.resx +++ b/unimarc/unimarc/마크/DLS_Copy.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + True @@ -132,37 +135,38 @@ iVBORw0KGgoAAAANSUhEUgAAAOEAAADhCAMAAAAJbSJIAAAABGdBTUEAALGPC/xhBQAAAIFQTFRF//// AAAAlJSU4ODgU1NT6enp+Pj4w8PDxMTEkpKS/Pz81tbW5eXlRERE3NzcmZmZzMzMZGRkTU1Nb29vg4OD urq6KioqW1tb8vLyf39/sbGxEhISPz8/i4uL0NDQZmZmIyMjoqKiNTU1tLS0GRkZp6end3d3Li4uOjo6 - Dg4OJSUlLUB5vgAABwxJREFUeF7tnX97ojAMx6ceIqDi/DXndJ47vZt7/y/wFOMUSKG0SWE8+fxz9zxl - ZN8BaZq26ZMgCIIgCIIgCIIgCIIgCIIgCIIgCIIgCELrWHnDsb8+7uNuvD+u/fHQW0GLOT34t276kb99 - nn51siynu60f9eEqA7Zb+E+d9P1g9AaKcN42gR/C1dUIOl34X12E43gDMsrYxGP4IX26nZoVRtt/8Ovr - 8bmtJvIssE6Fq/3n9feuxOao73wuAutTGD0nv7AJM80HmQisS6E/TaybMh3AfYq4CqxH4ULXuagp1wgC - 61A4MPn88kzf4X44N4HuFQ5/gWV7dh7cE+FboGuF/S3YpSFWhQF3gY4VTqp1f+V8RnDnNA8C3Sr8C0Yp - wcLOR4EuFUYnsEnLMjd4SAl0qDAGi/SswQKQFuhMYWgewpTzF4wkZAS6Ujj8DfZ4+LzHqlmBjhROwBob - p1uomhPoRuEajJUzms3jtT+JxtHEP3bnM/3w7hrF5QU6UbgHW8V8BAsvl60I+8M/2w+4opjF+XJEoAuF - mNkMy3lhIB0uZhrf8RG3xK8wAEtKvrZ4YJJmMitO5ZzB3TW7wrIn+OLrJtJWa73XNQO3wpJvcFYtmzkY - wc9VgFnhHzCDMysY/iiYVNbIq/AdrKC8VE8OXlhUHJ+wKvTACMZJJ9WCEpb6rhScCsN8kv6bV7MU9pVe - lTwPp8IZ2MhzmMAlpmj0sTcYFard6LP9jNKktHe8wadwDBbyBHCFFStdp8qnUBlnGbuYDJo5ETaFr2Ag - y5tOiKaHnk/lUqjqCQ9DuIACrUELk8JQEUIe7H3MI8Uh0xUmhQpvTixQK7vFo1ARzLxRvqJntHpFHoU7 - uHsGOieToNftsyhUuBkfmonQjGtYFOLTn8SmdAM3DoV47vAZWonQFciiEH2ExG5UWyCHQvwR2o4m0ugL - 5FD4ArdO8QqNNFQQyKCwB3dOcbIZ8OaoIpBBIRryU40nEioJpFfYhxuneIFGEqoJpFeIzsKYZdVwKgqk - V4h1FTNoo6CqQHKFqJ+pnvhVUi2TeIFaITaeIXyElZ8gvUIsP0S30tpAILVCbGBI50hNBFIrPMJtHyEb - NBkJpFaIRGxLi4X2KcwEUiuEuz5CtRvAUCCxQmxwT5S6MBVIrBD5DP9BkyXGAokVIp/hHJrsMBdIrBCZ - qyAZVVSPZO6QKhzCTR+BJitsBNIqRBzNBppssHhFz5AqRBwNwVyhnUBahcjw/rLazA6rV/QMqULElVoP - nGwF0sw430AGFrYhWzjuWUKZp10dQNadETS1BGToRJm/aABId0gT0TQGJEcTQ1NLQCYsMlshfjoLkPUA - 8aRo3SAKaWecagdJdxPP3NcNEpZSpvMbQPufYfu/w/b70vb3h+2Padofl7Z/bNH+8SHHGL9hcORpmgVL - rq1R8ORLmwRTzrtBcM1bNAiuuafmwDZ/2BgQV7OEppbAOI/fFEDVI+5e02D6Kwc00YFs+idbT1PGCqnw - k6rrQgLyITob52PbvOhDKt51bcVgiwYZ3h9sAa2bKrARWHuEeBdLAvP60gKQvpglTcS9RliJO8Pc67xV - YKVbdtBGC/tafRx0QyBPTMy/3wIFqzd5gjZq0D0z3H0ikm7nS9Zig0TifU850BenQ7yt+g7mton3rmVB - 3xv6iO2Gi/2HaQZgIw1joOFiD+kjWMjN1VVccbIP+AH0s+DtodCHyJZYxAv3cj5CRffL1WWgHUWnQ1y+ - IYubmgoJir8md2ZBURfjRP+HRQPuM+yJBcXKZXKH6inKRfHProeKuuvEEhXvSmcK7ZwoPg/aAi69/JTs - FSdZBQd1opTlsx2tj1DW+qLqNHy4Xw5X813qem00+wPUi/idzTuz1txb4aHaBYfTzuq6iW+2I42Jysdw - j9MyLMEoglXty1Dlxs64Xd+i6q4unMwdjl9wBMHB8fIWVa+YYFiDdqz+As84X7JLXkfYQxMW39Qwp05b - C7qndl4JtazeKds9qF/PO/QL388zR7jSMaXb677mOoFcNC+tAb2HS52jsQe0pK7+02Be0PHcqOkJXtAq - M9r5xM5GeOp7i0Cv8nOtC64rnW/RPSbnW7z763g+0y0WXPua+cJ+kYTa17R4BcXLCfjgSzdrEyrSbyQ0 - ZDU533lPNTrRNJF6xGPD7ybtHiuOKc1wOhwsh/zsvI/GbR0jPv8w4J1aNmNYFj7r88I8+2LMwP6c1Quj - Ju9tJDhLdtT0jRy+fsCJMao5CtXC5kznn7Kw2tubvKyb+EdtpYo0z8W7sdRKBzSLcBzrfpIf8biJ3Z8O - fT8YFR/9c9gE2gmrptKP/O3zNJ+N+Zrutovop6u7s/KG48H6uI+78X6/9qOh14ChrSAIgiAIgiAIgiAI - giAIgiAIgiAIgiAIAilPT/8BzuZT5uV+S2QAAAAASUVORK5CYII= + Dg4OJSUlLUB5vgAABzdJREFUeF7tne12ojAQhosuIqBiRa212q7dult7/xe4R6wKwwRCMhMoZ56fPSnj + K8l8BeLDgyAIgiAIgiAIgiAIgiAIgiAIgiAIgiAIQt/Y+JNZsD0ekkFyOG6D2cTfwCGNGcI/tMQoDvaP + iy8Psl687YN4BIfrs9/Dv7TAKAinL1BagZddGETw37QIvQH8k2OiWbKDehTskhn871oGXssK4/0/qKOS + z30zkQOvVYWbwydUoMHuqO98zgLbUxg/ws+uTap5IzOBbSkMFvBjN2IxhhdEuAhsR+FK17moqdf4LbAN + hWOT5Vdm8QovXOAq0L3Cya/iB7XgzYcXv3MT6FrhaF/4jLYkqjTgLtCxwnmz8FfPZwxNZOQEulX4N2eY + CiztzAt0qTA+5Q2TsS4VDwWBDhUmBbuUbIuGigKdKYzMU5h6/uYtAYGuFE5+A7u0fN5zVSjQkcI5NEvN + 6ZqqlgS6UbiFVpVM02WyDebxLJ4Hx8Ey1U/vLllcWaAThQdoFOU9XPmlbkU0mvzZv8OhKCtcoAuFmFnA + elmZSEerVGMdH3FL/ApDaBLytccTkyLztLqV43ke7q7ZFaLfa46noDQ1FWy2etMVwK2wZg2mpYSkkvEU + XqAeZoV/oL0CaUX5o2DeWCOvwldoLs+TZrsFsGpYn7Aq9KG1HKdK71lFVOu7CnAqjMpN+hvPqtpVh6F+ + IsCrMIXGbnzM4diG1HnoHIwK1W70Ub+pq2JeGx2v8CmcQVM3QjjUhI2uU+VTqMyzjF0MQLMnwqbwGVr6 + 5kUnRdNDz6dyKVRFwo8JHGmBeqXnYFIYKVLID3sfk6c6ZbrApFDhzYkFanW3eBQqkpkXyimq/h6L8Ch8 + g2Yu0DmZDC2BPAoVbiaA4+zQE8ijEN/+JDalKZDabAbeO3yEw+zQFciiEL2FxG5UWyCHQvwW2lYTRfQF + cih8gjbOPMNRVjQQyKBwCE2cOdkUvCWaCGRQiKb8VPVERiOB9ApH0MKZJzjKhmYC6RWiuzBmXTWchgLp + FWKhIoWDLGgqkFwh6meaN36V6FW9eagVYvUM4S1sfAfpFWL9oWZ7E1UYCKRWiBWGdI7URCC1wiO8PmXR + ZCSQWiGSsa119wfrMBNIrRBeXvFYlgmGAokVYsU9UevCVCCxQmQZ/oNjzDAWSKwQWYZLOMYIc4HECpG9 + CpKqonkmc4dU4QRe3fM8OMYEG4G0ChFHs4NjDLCYotQKEUdDsFdoJ5BWIVLen582s8NqilIrRFypdeFk + K5BiFt1BCgvblC2aDS2h7NNuPqA+bwrH/GyQ0omw+O0CSDikyWg6A9KjSeCYnw2yYQFehfjprKA+wvq+ + GyAKaXecWgdpdxOVv10BSUsp2/kdoP/3sP/rEFHYM1/a/3jY/5ym/3lp/2uL/teHHDV+x+Do03QLll5b + p0ASU9JOV/sw9bw7BBIQSfYtOgTX3lN3QJxpz7IaxNWs4ZifDeJq+lYEQ3lOp2m4+FUCjrEGeemf7Hma + OjbICT+Fc11IQBaiszofe82LPqVCCijC59qqQfJ+jsQfe4CW7tnEKmJolv4tlgzm50srQGIxS5sI6dW4 + KaHcGcamqYubiHhx7w0OIgFpfLto7mO5BlNOzP++BQp23uQJDiICKfT5YyLSbudr1mJFIvF7TyXQieNR + PmdSAHPbxO+uQdB5Q5+xXUG2L5h3ocbQWAZjooEFDOp3SPNgKTdXqLiA30SODOoCuix4IxR6E9kai/jB + vZy3UBF+uUIGGig8j/j4BoibMxUyFN8md2cBKxPPUZH+i0UTbp7CsIjiyWVyh+orjoviKJuKRIpz14kl + KuaKt4ADGVAsD9oDXIblLdkLjMH+joNzopTHZ3Ol3ABkD+MCVdAI4IWvuNrvUp/XRvN+gPohfpbeBYb6 + JC6CM/c2eKp2hr5HqkR9buKLbaUxV/kY7joNsIbW71idfRmp3Jjz51tU4erMydzhBCofeg647MlMEVVU + zDA8g3amXoHcNRMGtltyx+AcYR9tWNzg6R9WonaoGQ3Pgh6qnVeGQzd6R5GD39A/zzsKKudndip7K6gj + 8zdfS51ELl7WngF9gP/jirq7WH+u/sN4WRF4rrR0B8/UrMVvPrHfRngY+atQ7+Rn/pKwAnS3BmWaLgfH + 7PctXoNtskyxfV0c8/BKQmVcJEFnKbPiVxxeTsC7fSpvTaRov5HgYgdWA2yHn4YWnWiRWF3x2PDbeSpa + QXVOaYbTcrAe8t/Oe7ctpckh/v3D0KaO5mJSlz7r80TZe6VkrJeF1THt3ATNQfBbstNWSsEGBPoJJ8a0 + 5SxUC5vfdG49CdXEP5hM1l3SvLnTIrHm7+JdWWu1A7pFNEt0l+R7Muti+NNhFIRTxV7uNx+7ULth1VVG + cbB/XJS7MV+Lt/0q/unq7mz8yWy8PR6SQXI4bIN44negtBUEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQSDm + P87mU+ZvyRQDAAAAAElFTkSuQmCC \ No newline at end of file