развернуть базу данных SQL Server Express с настольным приложением?

Я сделал это перед использованием jRegistryKey. Это - библиотека LGPL Java/JNI, которая может сделать то, в чем Вы нуждаетесь. Вот пример того, как я привык его для включенного редактирования Реестра через regedit и также опцию "Show Folder Options" для меня в Windows с помощью реестра.

import java.io.File;
import ca.beq.util.win32.registry.RegistryKey;
import ca.beq.util.win32.registry.RegistryValue;
import ca.beq.util.win32.registry.RootKey;
import ca.beq.util.win32.registry.ValueType;


public class FixStuff {

private static final String REGEDIT_KEY = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\System";
private static final String REGEDIT_VALUE = "DisableRegistryTools";
private static final String REGISTRY_LIBRARY_PATH = "\\lib\\jRegistryKey.dll";
private static final String FOLDER_OPTIONS_KEY = "Software\\Microsoft\\Windows\\CurrentVersion\\Policies\\Explorer";
private static final String FOLDER_OPTIONS_VALUE = "NoFolderOptions";

public static void main(String[] args) {
    //Load JNI library
    RegistryKey.initialize( new File(".").getAbsolutePath()+REGISTRY_LIBRARY_PATH );

    enableRegistryEditing(true);        
    enableShowFolderOptions(true);
}

private static void enableShowFolderOptions(boolean enable) {
    RegistryKey key = new RegistryKey(RootKey.HKEY_CURRENT_USER,FOLDER_OPTIONS_KEY);
    RegistryKey key2 = new RegistryKey(RootKey.HKEY_LOCAL_MACHINE,FOLDER_OPTIONS_KEY);
    RegistryValue value = new RegistryValue();
    value.setName(FOLDER_OPTIONS_VALUE);
    value.setType(ValueType.REG_DWORD_LITTLE_ENDIAN);
    value.setData(enable?0:1);

    if(key.hasValue(FOLDER_OPTIONS_VALUE)) {
        key.setValue(value);
    }
    if(key2.hasValue(FOLDER_OPTIONS_VALUE)) {
        key2.setValue(value);
    }           
}

private static void enableRegistryEditing(boolean enable) {
    RegistryKey key = new RegistryKey(RootKey.HKEY_CURRENT_USER,REGEDIT_KEY);
    RegistryValue value = new RegistryValue();
    value.setName(REGEDIT_VALUE);
    value.setType(ValueType.REG_DWORD_LITTLE_ENDIAN);
    value.setData(enable?0:1);

    if(key.hasValue(REGEDIT_VALUE)) {
        key.setValue(value);
    }
}

}

5
задан p.campbell 2 October 2010 в 14:57
поделиться

2 ответа

Один раз нажав кнопку, вы можете сделать так, чтобы sql server выражал зависимость от основного проекта, и он будет развернут с данными установки и установлен, если он еще не установлен, при первой установке приложения .

Это можно сделать в свойствах проекта в Visual Studio.

1
ответ дан 14 December 2019 в 13:38
поделиться

Вам необходимо установить механизм SQL Express, если вы хотите его использовать. Развертывание только клиентского подключения даст вам именно то, что подразумевает название «клиентское подключение»: вы сможете подключиться к SQL Server. Но только работающий экземпляр SQL Server сможет читать / записывать базу данных вашего приложения.

MSI для установки SQL Express на самом деле очень настраиваемый и допускает множество сценариев, включая автоматическую установку и удаленное развертывание . Основные параметры см. В разделе Настройка SQL Express во время установки . Установщик вашего приложения должен будет вызвать экспресс-установщик, передав требуемые параметры.

5
ответ дан 14 December 2019 в 13:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: