5 votos

¿Es posible forzar las mayúsculas en un campo de cadena de la geodatabase?

Tengo ciertos campos de cadena en mis tablas de la base de datos geográficos con los que me gustaría aplicar una regla de mayúsculas y minúsculas. Estos campos son los que no se prestan a los dominios (como los campos de dirección).

¿Es posible crear un campo de cadena de la geodatabase que sólo admita intrínsecamente caracteres en mayúsculas? Me gustaría poder utilizar las herramientas integradas de ESRI en ArcMap para editar mis tablas y convertirlas a mayúsculas sobre la marcha.

Estoy utilizando ArcSDE y MS SQL-Server. Se prefieren las respuestas que utilizan la validación del extremo frontal en la pila de ESRI, pero una solución SQL generalizada que analiza las entradas en el lado RDBMS con algo como un disparador INSTEAD OF es aceptable también.


Editar: Como la respuesta aceptada consiste en la edición de SQL en un backend RDBMS de ArcSDE, Devdatta Tengshe ha señalado que puede ser muy peligroso hacer esto si no se sabe lo que se está haciendo. Podría corromper sus datos.

Si su situación es propicia, debería utilizar la respuesta de BradHard en su lugar (creando una vista de base de datos como su fuente de datos).

ESRI en realidad no desalienta el uso de triggers SQL en el backend para mantener los datos. Sin embargo, ESRI instruye en su documentación que debería no utilice SQL en su RDBMS para editar los siguientes datos de ArcSDE:

No utilice SQL para editar lo siguiente:

  • Tablas del sistema de geodatabase ArcSDE

  • ObjectIDs (o IDs de fila) que son mantenidos por ArcSDE o la geodatabase

  • Tablas o clases de características que participan en la siguiente funcionalidad de la geodatabase:

    1. Clases de rasgos de anotación y anotación vinculada a rasgos

    2. Datos archivados

    3. Tejidos catastrales o parcelarios

    4. Dominios

    5. Replicación de la base de datos geográficos

    6. Redes geométricas

    7. Conjuntos de datos de la red

    8. Clases de relación

    9. Representaciones

    10. Conjuntos de datos esquemáticos

    11. Subtipos

    12. Conjuntos de datos de la encuesta

    13. Terrenos

    14. Topología

Siempre que los campos que desee forzar el uso de mayúsculas no incumplan ninguno de los requisitos indicados anteriormente, puede utilizar con seguridad el método de activación SQL de Devdatta Tengshe que se indica a continuación para forzar el uso de mayúsculas en los campos de cadena individuales que desee.

3voto

Anthony Cramp Puntos 126

Hay muchas incógnitas en tus preguntas. No conozco su nivel de conocimientos con MS SQL server o ArcSDE. No sé qué tan cómodo se siente con el trasteo de las tablas del backend.

Por eso, en general, diría que BradHard 'La respuesta es la mejor manera de conseguir lo que quieres. Tener una vista espacial con un operador superior es la opción más segura.

Pero si eres lo suficientemente valiente como para jugar con el backend del RDBMS, recuerda que estás prácticamente solo y que hay una alta probabilidad de corromper la base de datos.

Esta es una forma de utilizar un disparador para la validación de datos:

  1. En primer lugar, asegúrese de que su featureclass es registrado como versionado .
  2. Ir a la SDE_table_registry tabla, y averiguar el registration_id de su featureclass. Este registration_id le dirá cuál es el A (es decir, de adición) para su Featureclass versionada. En mi caso, el id era 20 . Por eso necesito hacer un trigger en la tabla a20
  3. Haz la siguiente activación:

    CREATE TRIGGER dbo.upper_trig ON dbo.a20 Instead of Insert AS BEGIN INSERT INTO [dbo].[a20] ([OBJECTID] ,[Name],[Id],[SHAPE],[SDE_STATE_ID]) Select OBJECTID, UPPER(Name),Id,SHAPE,SDE_STATE_ID from inserted; END GO

En este ejemplo, mi featureclass tiene dos campos Name & Id, además de los campos generados por el sistema.

3voto

Nathan Feger Puntos 7675

No has especificado la tabla en concreto, así que una solución general podría ser crear un VER que devuelve el SUPERIOR de la mesa. Entonces no importará lo que se inserte/actualice realmente, seguirá estando en mayúsculas.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X