이,이 종종 도입 할 수
private void TurnOffUnicodeCompressionInField(ADOX.CatalogClass catalogClass, String tableName, String field)
{
ADOX.Column column = catalogClass.Tables[tableName].Columns[field];
ADOX.Property prop = column.Properties["Jet OLEDB:Compressed UNICODE Strings"];
prop.Value = true;
}
private void TurnOffAllowZeroLengthInAllFields(ADOX.CatalogClass catalogClass, String tableName)
{
foreach (ADOX.Column column in catalogClass.Tables[tableName].Columns)
column.Properties["Jet OLEDB:Allow Zero Length"].Value = false;
}
private void MyButton_Click(object sender, EventArgs e)
{
String filePath = "";
OpenFileDialog ofd = new OpenFileDialog();
DialogResult result = ofd.ShowDialog();
if (result == DialogResult.OK)
{
filePath = ofd.FileName;
ADOX.CatalogClass catDatabase = new ADOX.CatalogClass();
catDatabase.let_ActiveConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath);
// SoftwareTable
TurnOffAllowZeroLengthInAllFields(catDatabase,"Software");
TurnOffUnicodeCompressionInField(catDatabase, "Software", "Description");
TurnOffUnicodeCompressionInField(catDatabase, "Software", "Name");
}
}
. 특히 "스마트 쿼트"는 종종 문제를 일으 킵니다.
또한 다음 스레드를 살펴보십시오 (C++에도 있음) Discussion on ADOX Property Usage in C++.
속성을 반복하고 현재 값을 표시 할 수 있습니까?
또한 Access에서 실행되는이 문제가 발생합니다. 이전 게시물에 제안 된 SQL이 적합하지 않습니까? – Fionnuala
ADOX를 사용하여 Allow Zero Length를 제거해야하므로 ADOX를 사용하여 UNICODE 압축을 제거하지 않는 이유는 무엇입니까? 너무 나쁜 그것은 예상대로 작동하지 않습니다. 모든 아이디어? – MadSeb
ADOX는 넌 - 네이티브 데이터 추상화 계층이며 특정 데이터베이스 엔진의 모든 속성을 반드시 조작 할 수있는 것은 아닙니다. Jet/ACE는 Jet 4 릴리스의 기간에 MS ADO-everywhere 캠페인 중 원시 데이터 인터페이스 레이어 인 DAO가 손상된 경우 특히 좋지 않습니다. 불행한 결과는 거의 모든 것이 DAO를 사용할 수 있지만 몇 가지 경우 유일한 지원은 ADO에 있다는 것입니다. 그리고 예, 그것은 바보스럽고 정말 짜증납니다. 액세스 팀이 ACE에서이 문제를 해결할 계획인지 아니면 일부가 이미 수정 된 것인지 여부는 알 수 없습니다. –