Внешние ключи, частные ключи MSSQL 1: 1 и 1: много проблем - PullRequest
1 голос
/ 29 июня 2011

У меня проблемы с SQL ( SqlCe ). Я получил следующую ошибку:

Произошла ошибка при разборе запроса.

(1) ERROR:> [Token Line number = 1, Token Line offset 853, Token in error = @clID]

из следующей строки SQL:

mySQLCommand1.CommandText = "INSERT into clientSubjectiveComplaints (clientSubComplaintCreated,clientSubComplaintModified,clientSubComplaintAge,clientSubComplaintWeight,clientSubComplaintHeight,clientSubComplaintConfirmation,clientSubComplaintEnviorment,clientSubComplaintFood,clientSubComplaintPresentComplaint,clientSubComplaintHistoryofPresentComplaint,clientSubComplaintPastMedicalHistory,clientSubComplaintMedication,clientSubComplaintLastDentalCheckUp,clientID) VALUES (@ClientSubComplaintCreated, @ClientSubComplaintModified, @ClientSubComplaintAge, @ClientSubComplaintWeight, @ClientSubComplaintHeight, @ClientSubComplaintConfirmation, @ClientSubComplaintEnviorment, @ClientSubComplaintFood,@ClientSubComplaintPresentComplaint, @ClientSubComplaintHistoryofPresentComplaint, @ClientSubComplaintPastMedicalHistory, @ClientSubComplaintMedication, @ClientSubComplaintLastDentalCheckUp, @clID";

Это было, когда я пытался вставить в таблицу clientSubjectiveComplaint .

enter image description here ПРИМЕЧАНИЕ. Приведенный выше db проверяет нормально.

Предполагая, что после прочтения в Интернете, что это может быть проблема с внешним ключом закрытого ключа, но я не совсем уверен.

Я несколько изменилтаблицы с отношениями 1: 1 (см. изображение ниже), так как в любом случае это имеет больше смысла, но затем говорится, что если у вас есть отношение 1: 1, то ожидается, что первичный ключ будет одинаковым для таблиц. См. Здесь

Итак, ВОПРОС :

Что подразумевалось под первоначальной ошибкой (1) и почему я получал ошибку токена?

И во-вторых:

Если предположить, что проблема с ключом PK в См. Здесь правильная, то какова правильная процедура для установления отношений 1: 1.

Спасибо.

enter image description here

1 Ответ

2 голосов
/ 29 июня 2011

Вы пропускаете закрывающую скобку в своем запросе в mySQLCommand1.CommandText

Другими словами, оно должно быть:

mySQLCommand1.CommandText = "INSERT into clientSubjectiveComplaints (clientSubComplaintCreated,clientSubComplaintModified,clientSubComplaintAge,clientSubComplaintWeight,clientSubComplaintHeight,clientSubComplaintConfirmation,clientSubComplaintEnviorment,clientSubComplaintFood,clientSubComplaintPresentComplaint,clientSubComplaintHistoryofPresentComplaint,clientSubComplaintPastMedicalHistory,clientSubComplaintMedication,clientSubComplaintLastDentalCheckUp,clientID) VALUES (@ClientSubComplaintCreated, @ClientSubComplaintModified, @ClientSubComplaintAge, @ClientSubComplaintWeight, @ClientSubComplaintHeight, @ClientSubComplaintConfirmation, @ClientSubComplaintEnviorment, @ClientSubComplaintFood,@ClientSubComplaintPresentComplaint, @ClientSubComplaintHistoryofPresentComplaint, @ClientSubComplaintPastMedicalHistory, @ClientSubComplaintMedication, @ClientSubComplaintLastDentalCheckUp, @clID)";

То есть оно должно заканчиваться так: , @clID)";

...